测试完这段代码后,我很困惑我的表格已经创建了。我希望在调用.sync方法时没有连接。 sync()方法是否以某种方式等待连接建立?
var Sequelize = require('sequelize');
var chalk = require('chalk');
var sequelize = new Sequelize('postgres://localhost/nfldb');
sequelize.define('team', {
name: Sequelize.STRING
});
sequelize.authenticate()
.then(function(){
console.log(chalk.green('connected to database ' + sequelize.config.database));
})
.catch(function(er){
console.log(chalk.red(er.message));
});
sync();
function sync(){
sequelize.sync({force: true})
.then(function(){
console.log(chalk.green('database has been synced'));
})
.catch(function(){
console.log(chalk.red('unable to sync database'));
});
}
答案 0 :(得分:0)
是的,sync
会自动请求与数据库的连接。 authenticate
用于检查您是否可以在不执行实际查询的情况下连接到数据库 - 据我记得它SELECT 1 + 1
。它不需要调用authenticate
,它只是作为便利方法的menat。