【发布时间】:2019-11-07 18:06:47
【问题描述】:
当我尝试使用 User.create() 将用户导入数据库时,sequelize 出现错误,提示该表不存在。即使我在创建函数上方创建了一个表格行。我的目标是在不使用 .sync 函数的 .then() 函数的情况下添加用户。
我试图将同步功能置于等待中,因为我认为同步功能需要更长的时间才能完成。
// imports ...
// Connecting to database
// Creating ORM object
const db = new sequelize(format("%s://%s:%s@%s:%s/%s", gvars.db_soft, gvars.db_user, gvars.db_pass, gvars.db_host, gvars.db_port, gvars.db_daba));
db.authenticate().then(() => {
console.log("Connection established.");
}).catch(err => {
console.error(err);
});
// Define users table
const User = db.define("users", {
firstName: {
type: sequelize.STRING,
allowNull: false
},
lastName: {
type: sequelize.STRING,
allowNull: false
}}, { freezeTableName: true,
});
db.sync({ force: true }).then(() => { console.log("Table created."); });
User.create({
firstName: "Milan",
lastName: "Vjestica"
});
//...starting app
我希望将用户添加到表中。
【问题讨论】:
-
我敢打赌这是异步问题。
User.create需要在then(() => { // here })内部。参考:eloquentjavascript.net/11_async.html
标签: mysql node.js database sequelize.js