我有2个express.js应用程序,并运行sequelize.sync(),但是在我的第一个应用程序中,它生成表,而其他应用程序不生成表,我想知道为什么,因为脚本是相同的。
database.js
const Sequelize = require('sequelize');
const sequelize = new Sequelize('student-affairs', 'root', '', {
dialect: 'mysql',
host: 'localhost',
operatorsAliases: false,
});
module.exports = sequelize;
organization.js
const Sequelize = require('sequelize');
const sequelize = require('../configs/database');
const Organization = sequelize.define('organization', {
id: {
type: Sequelize.INTEGER,
allowNull: false,
primaryKey: true,
autoIncrement: true
},
name: {
type: Sequelize.STRING,
allowNull: false
},
logo: {
type: Sequelize.STRING
},
createdBy: {
type: Sequelize.INTEGER,
allowNull: false
},
updatedBy: {
type: Sequelize.INTEGER,
allowNull: false
}
});
module.exports = Organization;
app.js
// Database
const sequelize = require('./configs/database');
sequelize
.sync()
.then(result => {
console.log(result);
app.listen(3001);
})
.catch(err => {
console.log(err);
});
但是在我登录之后,它总是像这样返回空模型
型号:{}, modelManager:ModelManager {模型:[],续集:[循环]},
它没有模型。任何人都可以解释为什么?谢谢
答案 0 :(得分:0)
我只是意识到,一旦我在app.js中定义了组织模型并解决了问题,就不会在app.js中调用组织模型。
我认为这是一个基本错误。现在我了解了它的工作原理。
// Models
const Organization = require('./models/organization');
sequelize
.sync()
.then(result => {
app.listen(3000);
})
.catch(err => {
console.log(err);
});