내 프로젝트에 NodeJS, Express 및 MySQL을 사용하고 있고 Bookshelf ORM을 사용하려고합니다.nodejs에서 Knex 연결을 확인하는 방법
Bookshelf는 쿼리, 모델링에 Knex를 사용하고 Knex (http://bookshelfjs.org/#installation)를 통해 DB 연결을 설정할 것을 제안합니다.
Knex와의 성공적인 DB 연결을 설정하는 데 문제가 있습니다. DB 연결이 성공한 경우에만 서버를 시작하고 싶지만 그렇게하기 위해 연결을 설정 한 후에 아무것도 제공하지 않는 것 같습니다 (약속 또는 속성 없음).
이것은 내가 사용 해본 코드입니다.
import _knex from "knex"; // npm install knex --save
import _bookshelf from "bookshelf"; // npm install bookshelf --save
let knex = _knex({
client: "mysql",
connection: {
host: "127.0.0.1",
database: process.env.DB,
user: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD
},
debug: true
});
let bookshelf = _bookshelf(knex);
module.exports.knex = knex;
module.exports.bookshelf = bookshelf;
더 참고 :이 Sequelize라는 이름의 또 다른 ORM이며,이 약속을 반환하고 (http://docs.sequelizejs.com/en/latest/api/sequelize/#authenticate-promise)
sequelize.authenticate()
.then(() => {
console.log("Db successfully connected");
app.listen(port,() => console.log(`App started at: ${port}`));
})
.catch(err => console.log('Unable to connect to the database'));
내가 생각할 수있는 유일한 해결책은 수행하는 것입니다으로 사용될 수 sequelize.authenticate()
을 제공USE {DB_NAME}
과 같은 원시 쿼리를 사용하여 서버를 시작할지 여부를 결정합니다. 이 솔루션이 충분히 좋은가요?