检索导入的Sequelize模型

时间:2015-12-23 22:21:10

标签: javascript node.js sequelize.js

我第一次与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的内容,我什么也得不到。请向我解释这个概念。

2 个答案:

答案 0 :(得分:0)

您应该导出模型,然后导入控制器,然后使用:

  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正在返回承诺。

答案 1 :(得分:0)

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