簡體   English   中英

檢索導入的Sequelize模型

[英]Retrieve imported Sequelize model

我第一次使用Sequelize,所以請耐心等待。))我已經創建了名為“模型”的主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類的models.User.findById我將一無所獲。 請給我解釋一下這個概念。

您應該導出模型,然后導入到控制器,然后使用以下命令:

  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。

弄清楚了! 1)修改后的出口,例如: exports.sequelize = sequelize; exports.User = User; exports.sequelize = sequelize; exports.User = User; 2)現在可以導入sequilize連接或模型: var User = require('../models').User

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM