现在使用MySQL和sequelize@1.6.0-beta4我想使用这个新功能来获取相关模型。 所以我有这个:
self.Project.hasMany(self.Task, {as:'Tasks', foreignKey: 'projectID'});
然后使用以下内容:
db.models.Project.findAll({where:{id:1}, include : ['Tasks']}).success(function(project){
console.log("With assoc: " + JSON.stringify(project) );
});
不幸的是我收到以下错误:
node_modules/sequelize/lib/dialects/mysql/query-generator.js:143
if (association.connectorDAO) {
^
TypeError: Cannot read property 'connectorDAO' of null
如果我压制include语句,它运行良好,但显然不会返回相关的任务。
进入调试我发现了一些有趣的东西。 include
语句查找子对象(Task)上的关联。如果我添加(不必要的)以下内容:
self.Task.belongsTo(self.Project);
然后,我没有再触发错误,但未获取子对象。 我担心有一个错误...
此外,我正在使用JSON.stringify
,因为.values
无效(undefined
)。为什么呢?
答案 0 :(得分:0)
您必须来回连接两个模型,否则您将收到该错误。
如果未提取任何内容,则.values
将不确定。