2015-12-23 59 views
0

我一直在Sequelize工作的第一次,所以請耐心等待)) 我已經創建了一個名爲「模式」主要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,我什麼都沒有收到。請向我解釋這個概念。

回答

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正在恢復的承諾。

0

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