Javascript 为什么在续集之前运行Applisten?
我认为在applisten之前代码将成功返回,但它并不像我想象的那样工作。我不明白它是怎么工作的?Javascript 为什么在续集之前运行Applisten?,javascript,node.js,Javascript,Node.js,我认为在applisten之前代码将成功返回,但它并不像我想象的那样工作。我不明白它是怎么工作的? 某人能解释为什么吗 sequelize .sync() .then(() => { console.log('successfull') }) .catch(err => {console.error('err',err)}); // view engine setup app.set('views', path.join(__dirname, 'views')
某人能解释为什么吗
sequelize
.sync()
.then(() => {
console.log('successfull')
})
.catch(err => {console.error('err',err)});
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use('/',loginRouter);
app.use('/admin',login);
app.use('/admin', indexRouter);
app.listen(3001,()=>{console.log('App running at http://localhost:3001');
})
这是js中的一个事件循环问题,很容易理解,然后()返回属于异步任务的承诺,app。Listen()是一个同步任务,用js执行机制是先同步任务再执行异步任务,请访问了解更多信息
sync()
是一个异步操作;如果要在创建表后设置应用程序,则需要将所有app.
命令移动到console.log()命令所在的回调中。
App running at http://localhost:3001
Executing (default): CREATE TABLE IF NOT EXISTS `users` (`id` INTEGER NOT NULL auto_increment , `username` VARCHAR(255) NOT NULL, `password` VARCHAR(255) NOT NULL, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB;
Executing (default): SHOW INDEX FROM `users`
successfull