我刚接触基于Express发电机的项目Sequelize。我正在使用Sequelize作为我的MySQL数据库,我需要在开始侦听来自网站的http请求之前启动数据库。首先我做的是:
app.js
sequelize.sync().then(() => {
app.use('view engine', 'ejs');
app.use('/auth', auth);
//etc etc etc...
}).catch(err=>{
console.log(err);
});
但有些人说我这不是正确的风格。还有更好的方法吗?或者在运行快速路线之前使用同步呼叫等,如下所示:
syncFunctionWhatCallsSequelizeSync();
app.use('view engine', 'ejs');
app.use('/auth', auth);
//etc etc etc...
答案 0 :(得分:2)
您可以在sync()之前配置路由,中间件等,前提是您的服务器仅在sync()之后侦听。
// Configure routes
// Configure middleware
// Configure etc
models.sequelize.sync()
.then(() => {
// Start listening
})
.catch(err => {
});