【发布时间】:2014-05-27 05:44:19
【问题描述】:
我正在使用 sequelize node.js 模块在 Postgres sql 中形成模式
我有以下两个项目架构和我的用户。
项目
module.exports = function(sequelize, DataTypes) {
var project = sequelize.define('project', {
description: DataTypes.STRING
},{
classMethods: {
associate: function(models) {
project.hasMany(models.myusers,{through:"project_persons"});
}
}
});
return project;
};
我的用户
module.exports = function(sequelize, DataTypes) {
var myusers = sequelize.define('myusers', {
name: DataTypes.STRING
},{
classMethods: {
associate: function(models) {
myusers.hasMany(models.project,{through:"project_persons"});
}
}
});
return myusers;
};
我试图建立多对多的关系。当我运行应用程序第三个表“project_person 已创建”。
index.js(路由)我有以下代码
models.myusers.create({
description:"newuser"
}).success(function(user) {
var project1;
var project2;
models.project.create({
description:"p1"
}).success(function(p1){
console.log("Project 1 created");
project1 = p1;
});
models.project.create({
description:"p2"
}).success(function(p2){
console.log("Project 2 created");
project2 = p2;
});
user.setProjects([project1,project2]).success(function() {
console.log("CREATION SUCESS");
});
});
在屏幕上显示以下错误
/home/hassan/Desktop/node/node_modules/sequelize/lib/associations/has-many-double-linked.js:151 foreignIdentifier] = ((targetKeys.length === 1) ? unassociatedObject[targetKey ^ TypeError:无法读取未定义的属性“id” 在/home/hassan/Desktop/node/node_modules/sequelize/lib/associations/has-many-double-linked.js:151:88 在 Array.map (本机) 在 module.exports.HasManyDoubleLinked.injectSetter (/home/hassan/Desktop/node/node_modules/sequelize/lib/associations/has-many-double-linked.js:147:38) 在 instance.(匿名函数).success.proxy.events (/home/hassan/Desktop/node/node_modules/sequelize/lib/associations/has-many.js:317:39) 在 EventEmitter.emit (events.js:95:17) 在 module.exports.CustomEventEmitter.emit (/home/hassan/Desktop/node/node_modules/sequelize/lib/emitters/custom-event-emitter.js:107:33) 在空。 (/home/hassan/Desktop/node/node_modules/sequelize/lib/associations/has-many-double-linked.js:74:63) 在 EventEmitter.emit (events.js:95:17) 在 module.exports.CustomEventEmitter.emit (/home/hassan/Desktop/node/node_modules/sequelize/lib/emitters/custom-event-emitter.js:107:33) 在emitter.query.success.error.proxy.events (/home/hassan/Desktop/node/node_modules/sequelize/lib/query-interface.js:890:19) 4 月 24 日 10:31:47 - [nodemon] 应用程序崩溃 - 在开始之前等待文件更改...
任何人都可以告诉我哪里出错了。
【问题讨论】:
标签: javascript node.js postgresql sequelize.js