我有两个模型(个人、电子邮件),并尝试使用 Sequelize 命令插入到创建的“Individual_Email”表中。当 Sequelize 创建所需的表时,当尝试向该表添加/获取/设置该表时,它会返回以下错误:“对象 [object Promise] 没有方法 'addEmail'”。我缺少什么?
Sequelize 文档说,如果模型是 User 和 Project,“这会将方法 getUsers、setUsers、addUsers 添加到 Project,并将 getProjects、setProjects 和 addProject 添加到 User”。
这让我相信(查看 Promise)我可能误解了如何使用 Node.js 的异步功能。我尝试过同步和异步版本的插入,两者都返回上面相同的消息。
续集文档:http://docs.sequelizejs.com/en/latest/docs/associations/ http://docs.sequelizejs.com/en/latest/docs/associations/
Code:
路线/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: "[email protected] /cdn-cgi/l/email-protection"
});
console.log(tEmail);
res.render('index', { title: 'Express' });
});
module.exports = router;
OR
/* 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: "[email protected] /cdn-cgi/l/email-protection"
}).then(function(){
tIndividual.addEmail(tEmail).then(function(){
console.log("Success");
});
})
});
res.render('index', { title: 'Express' });
});
module.exports = router;
模型/index.js
db.Individual.hasMany(db.Email, {
as: 'Email',
through: 'Individual_Email'
});
db.Email.hasMany(db.Individual, {
as: 'Individual',
through: 'Individual_Email'
});
如何以最佳方式添加到表“Individual_Email”?我假设我需要同步执行此操作以等待更新,但我愿意接受任何建议。谢谢!