同步sequelize.sync()还是不同的方式?

时间:2018-02-18 18:25:05

标签: node.js express asynchronous sequelize.js synchronous

我刚接触基于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...

1 个答案:

答案 0 :(得分:2)

您可以在sync()之前配置路由,中间件等,前提是您的服务器仅在sync()之后侦听。

// Configure routes
// Configure middleware
// Configure etc
models.sequelize.sync()
    .then(() => {
        // Start listening 
    })
    .catch(err => {

    });