为什么sequelize.sync()总是返回空模型?

时间:2019-02-08 09:08:09

标签: node.js express sequelize.js

我有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 {模型:[],续集:[循环]},

它没有模型。任何人都可以解释为什么?谢谢

1 个答案:

答案 0 :(得分:0)

我只是意识到,一旦我在app.js中定义了组织模型并解决了问题,就不会在app.js中调用组织模型。

我认为这是一个基本错误。现在我了解了它的工作原理。


// Models
const Organization = require('./models/organization');

sequelize
    .sync()
    .then(result => {
        app.listen(3000);
    })
    .catch(err => {
        console.log(err);
    });