0
我已经创建了下面的表格:创建Sequelize关系/协会
user TABLE [id, name, email, dob, zipcode, created_on]
results TABLE [id, assessment_id, q_id, response, created_on]
下一页在我的数据库,我创建的结果之间的外键关联=> assessmentId和评估=> ID
在我的代码创建我的对象,它包含了所有我想要保存的信息,它看起来像这样:
results = {
name: 'bruce',
email: '[email protected]',
dob: 10/24/84,
zipcode: '55555',
responses: {
{
qId: 'S1Q01',
response: 2
}, {
qId: 'S1Q02',
response: 0
}
}
}
我的模型定义:
评估模型
module.exports = function(sequelize, DataTypes){
var assessment = sequelize.define('assessments', {
name: DataTypes.STRING,
email: DataTypes.STRING,
dob: DataTypes.DATE,
zipcode: DataTypes.INTEGER,
created_on: DataTypes.DATE
});
return assessment;
};
结果模型
module.exports = function(sequelize, DataTypes){
var results = sequelize.define('results', {
assessmentId: DataTypes.INTEGER,
qId: DataTypes.STRING,
response: DataTypes.STRING,
created_on: DataTypes.DATE
});
return results;
};
模型索引
var Sequelize = require('sequelize');
var models = [
'Assessment',
'Result'
];
models.forEach(function(model) {
module.exports[model] = sequelize.import(__dirname + '/' + model);
});
(function(m) {
m.Assessment.hasMany(m.Result);
})(module.exports);
module.exports.sequelize = sequelize;
好吧,我觉得这一切是正确的基于有限的文档,我能找到。
最后,在我的服务器上,我尝试接受POST请求并将结果保留在数据块中,但只保存了评估模型,结果模型被删除。
router.post('/assessment', function(req, res) {
var response;
var assessment = Assessment.create({
name: req.body.name,
email: req.body.email,
dob: req.body.dob,
zipcode: req.body.zipcode,
created_on: new Date()
})
.then(function(res) {
return function() {
for(i=0; i<req.body.responses.length; i++) {
response.build({
qId: req.body.responses[i].id,
response: req.body.responses[i].response,
created_on: new Date()
});
assessment.setResults(response);
}
res.send(200);
}
})
我在想什么?我找不到任何有关如何实际保留相关表格数据的文档,只有关于如何获取关联表格数据的文档。