Node.js / Sequelize.js / Express.js - Comment insérer dans plusieurs-à-plusieurs association? (sync/async?)

J'ai deux modèles (Individu, e-Mail) et j'essaie de l'insérer dans le créé " Individual_Email la table à l'aide de la Sequelize commandes. Alors que Sequelize est la création de la table désirée, elle retourne l'erreur suivante lorsque vous essayez d'ajouter/obtenir/de la/de ce tableau: "l'Objet [de l'objet de la Promesse] n'a pas de méthode 'addEmail'". Ce qui me manque?

La Sequelize la documentation dit que si les modèles sont d'Utilisateur et le Projet, "Cela va ajouter des méthodes getUsers, setUsers, addUsers de Projet, et getProjects, setProjects et addProject à l'Utilisateur."

Cela me mène à croire (promesses) que je suis susceptible de l'incompréhension comment utiliser les fonctionnalités asynchrones de Nœud. J'ai essayé à la fois synchrone et asynchrone version de l'insertion, tous deux de retour le même message que ci-dessus.

Sequelize Documentation: http://docs.sequelizejs.com/en/latest/docs/associations/

Code:

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: "[email protected]"
    });
    console.log(tEmail);

    res.render('index', { title: 'Express' });
});

module.exports = router;

OU

/* 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]"
        }).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'
});

Comment puis-je ajouter de la table 'Individual_Email' de la meilleure façon? Je suppose que j'ai besoin de le faire de manière synchrone à attendre la mise à jour, mais je suis ouvert à toutes suggestions. Merci!

OriginalL'auteur smileham | 2015-03-07