Sequelize.js - 持久化关联模型
Sequelize.js - Persist model with association
我正在尝试使用以下模型和保存方法保存实体,但它只创建了父实体。参见:
var Project = database.define('projects', {
name : {
type : Sequelize.STRING,
allowNull : false,
unique : true
},
archived : {
type : Sequelize.BOOLEAN,
allowNull : false,
defaultValue : false
}
});
var Sprint = database.define('sprints', {
name : {
type : Sequelize.STRING,
allowNull : false,
unique : true
},
start : {
type : Sequelize.DATE
},
end : {
type : Sequelize.DATE
}
});
Project.hasMany(Sprint, {
as : 'sprints'
});
Sprint.belongsTo(Project);
Express中的保存方法:
var project = req.body;
models.Project.create(project).then(function(project){
return res.json(project);
}, function(err) {
return next(err);
});
req.body 类似于:
{
archived : false,
name : "Projeto 1",
sprints : [{
end : "2016-02-25T03:00:00.000Z",
name : "Sprint 1",
start : "2016-02-19T02:00:00.000Z"
}
]
}
结果是在数据库中创建了一条Project记录。仅此而已。
Sprint条目也是新的,我期待它可以与Project一起创建。
有什么想法吗?
谢谢
好的,现在它保存了 Project 和 Sprints:
var project = req.body;
models.Project.create(project, {
include : [{
model : models.Sprint,
as : 'sprints'
}
]
}).then(function (project) {
return res.json(project);
}, function (err) {
return next(err);
});
我正在尝试使用以下模型和保存方法保存实体,但它只创建了父实体。参见:
var Project = database.define('projects', {
name : {
type : Sequelize.STRING,
allowNull : false,
unique : true
},
archived : {
type : Sequelize.BOOLEAN,
allowNull : false,
defaultValue : false
}
});
var Sprint = database.define('sprints', {
name : {
type : Sequelize.STRING,
allowNull : false,
unique : true
},
start : {
type : Sequelize.DATE
},
end : {
type : Sequelize.DATE
}
});
Project.hasMany(Sprint, {
as : 'sprints'
});
Sprint.belongsTo(Project);
Express中的保存方法:
var project = req.body;
models.Project.create(project).then(function(project){
return res.json(project);
}, function(err) {
return next(err);
});
req.body 类似于:
{
archived : false,
name : "Projeto 1",
sprints : [{
end : "2016-02-25T03:00:00.000Z",
name : "Sprint 1",
start : "2016-02-19T02:00:00.000Z"
}
]
}
结果是在数据库中创建了一条Project记录。仅此而已。
Sprint条目也是新的,我期待它可以与Project一起创建。
有什么想法吗?
谢谢
好的,现在它保存了 Project 和 Sprints:
var project = req.body;
models.Project.create(project, {
include : [{
model : models.Sprint,
as : 'sprints'
}
]
}).then(function (project) {
return res.json(project);
}, function (err) {
return next(err);
});