【问题标题】:Retrieve imported Sequelize model检索导入的 Sequelize 模型
【发布时间】:2016-03-30 09:59:40
【问题描述】:

我是第一次使用 Sequelize,所以请耐心等待)) 我创建了名为“models”的主 Sequelize 连接文件,如下所示:

var sequelize = new Sequelize(
        dbsettings['database'],
        dbsettings['username'],
        dbsettings['password'],
        ...
        }),
    User = sequelize.import(__dirname+'/user'),
    Role = sequelize.import(__dirname+'/role');

User.belongsToMany(Role, {through: 'user_roles'});
Role.belongsToMany(User, {through: 'user_roles'});

module.exports = sequelize;

例如,我如何在我的控制器中为User.findById() 调用用户模型? 如果我导入此文件并尝试调用 models.User.findById 之类的东西,我什么也得不到。请给我解释一下这个概念。

【问题讨论】:

    标签: javascript node.js sequelize.js


    【解决方案1】:

    你应该导出你的模型,然后导入你的控制器,然后使用这个:

      User.findOne({ where: { id: userId } })
      .then(function(user) {
        if (!user) {
          //raise error or log it
        } else {
          // everything is ok, use returned user object
          console.log(user.name);
        }
      });
    

    只是你应该记住,任何数据库操作都是异步调用,而 Sequelize 正在返回 Promise。

    【讨论】:

      【解决方案2】:

      想通了! 1)修改后的出口,如: exports.sequelize = sequelize; exports.User = User; 2)现在可以导入sequilize连接或模型:var User = require('../models').User;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-14
        • 2022-07-27
        • 2016-03-13
        • 2020-10-14
        • 1970-01-01
        • 2016-05-12
        • 2022-01-21
        相关资源
        最近更新 更多