我有两个模型(Individual,Email),正在尝试使用Sequelize命令插入到创建的“Individual_Email”表中。虽然Sequelize正在创建所需的表,但在尝试添加/获取/设置该表时返回以下错误:“Object [object Promise] has no method 'addEmail'”。我错过了什么?
Sequelize文档表示,如果模型为User和Project,“这将向Project添加getUsers,setUsers,addUsers方法,并向User添加getProjects,setProjects和addProject”。
这让我相信(查看承诺)我可能误解了如何使用Node的异步功能。我尝试了同步和异步版本的插入,两者都返回上述相同的消息。
Sequelize文档:http://docs.sequelizejs.com/en/latest/docs/associations/ 代码:
routes/index.js
Sequelize文档表示,如果模型为User和Project,“这将向Project添加getUsers,setUsers,addUsers方法,并向User添加getProjects,setProjects和addProject”。
这让我相信(查看承诺)我可能误解了如何使用Node的异步功能。我尝试了同步和异步版本的插入,两者都返回上述相同的消息。
Sequelize文档:http://docs.sequelizejs.com/en/latest/docs/associations/ 代码:
routes/index.js
var express = require('express');
var router = express.Router();
var models = require('../models');
/* GET home page. */
router.get('/', function(req, res, next) {
'use strict';
var tIndividual, tEmail;
tIndividual = models.Individual.create({
name: "Test"
});
tEmail = models.Email.create({
address: "test@gmail.com"
});
console.log(tEmail);
res.render('index', { title: 'Express' });
});
module.exports = router;
或者
/* GET home page. */
router.get('/', function(req, res, next) {
'use strict';
var tIndividual, tEmail;
tIndividual = models.Individual.create({
name: "Test"
}).then(function(){
tEmail = models.Email.create({
address: "test@gmail.com"
}).then(function(){
tIndividual.addEmail(tEmail).then(function(){
console.log("Success");
});
})
});
res.render('index', { title: 'Express' });
});
module.exports = router;
models/index.js
db.Individual.hasMany(db.Email, {
as: 'Email',
through: 'Individual_Email'
});
db.Email.hasMany(db.Individual, {
as: 'Individual',
through: 'Individual_Email'
});
我应该如何最好地添加到“Individual_Email”表中? 我假设我需要同步执行以等待更新,但我对任何建议都持开放态度。谢谢!