私は自分のプロジェクトに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()
を提供
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'));
私は考えることができる唯一の解決策は、実行することですUSE {DB_NAME}
のような生のクエリを使用して、その出力を使用してサーバーを起動するかどうかを決定します。このソリューションは十分ですか?