Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Sequelize中使用关联_Javascript_Node.js_Sequelize.js - Fatal编程技术网

Javascript 如何在Sequelize中使用关联

Javascript 如何在Sequelize中使用关联,javascript,node.js,sequelize.js,Javascript,Node.js,Sequelize.js,我正在努力理解Sequelize,我对关联有点小问题。请看下面的代码: 用户模型: var Sequelize = require("sequelize"); module.exports = function (sequelize) { var User = sequelize.define('user', { id:{ type:Sequelize.INTEGER.UNSIGNED, autoIncrement:true, allowNull:false, prim

我正在努力理解Sequelize,我对关联有点小问题。请看下面的代码:

用户模型:

var Sequelize = require("sequelize");

module.exports = function (sequelize) {
    var User = sequelize.define('user', {
        id:{ type:Sequelize.INTEGER.UNSIGNED, autoIncrement:true, allowNull:false, primaryKey:true},
        name:{ type:Sequelize.STRING(50), defaultValue:''},
        email:Sequelize.STRING(50),
        password:Sequelize.STRING(256)
    });

    return User;
};
截止日期模型:

var Sequelize = require("sequelize");

module.exports = function (sequelize) {
    var User = require("./user")(sequelize),
        Deadline = sequelize.define('deadline', {
            id:{ type:Sequelize.INTEGER.UNSIGNED, autoIncrement:true, allowNull:false, primaryKey:true},
            name:{ type:Sequelize.STRING(255)}
        });

    User.hasMany(Deadline);

    return Deadline;
};
还有让我睡不好觉的代码:

var sequelize = require('./app/mysqlConnection'),
    User = require("./app/models/user")(sequelize),
    Deadline = require("./app/models/deadline")(sequelize);

sequelize.drop().success(function () {
    sequelize.sync().success(function () {

        var user = User.build({password:'bar', email:'ser'}),
            dead = Deadline.build({name:'learn js'});

        user.addDeadline(dead);
在我收到的最后一行

TypeError: Object [object Object] has no method 'addDeadline'
    at null.<anonymous> (C:\projects\deadline\dbsynch.js:11:14)
    at EventEmitter.emit (events.js:106:17)
    at module.exports.finish (C:\projects\deadline\node_modules\sequelize\lib\query-chainer.js:138:30)
    at exec (C:\projects\deadline\node_modules\sequelize\lib\query-chainer.js:92:16)
    at onSuccess (C:\projects\deadline\node_modules\sequelize\lib\query-chainer.js:65:11)
    at null.<anonymous> (C:\projects\deadline\node_modules\sequelize\lib\query-chainer.js:86:15)
    at EventEmitter.emit (events.js:95:17)
    at null.<anonymous> (C:\projects\deadline\node_modules\sequelize\lib\dao-factory.js:195:41)
    at EventEmitter.emit (events.js:95:17)
    at null.<anonymous> (C:\projects\deadline\node_modules\sequelize\lib\query-interface.js:162:19)
TypeError:Object[Object Object]没有方法“addDaildate”
在空。(C:\projects\deadline\dbsynch.js:11:14)
在EventEmitter.emit(events.js:106:17)
在module.exports.finish(C:\projects\deadline\node\u modules\sequelize\lib\query chainer.js:138:30)
在exec(C:\projects\deadline\node\u modules\sequelize\lib\query chainer.js:92:16)
成功时(C:\projects\deadline\node\u modules\sequelize\lib\query chainer.js:65:11)
在空。(C:\projects\deadline\node\u modules\sequelize\lib\query chainer.js:86:15)
在EventEmitter.emit(events.js:95:17)
在空。(C:\projects\deadline\node\u modules\sequelize\lib\dao factory.js:195:41)
在EventEmitter.emit(events.js:95:17)
在空。(C:\projects\deadline\node\u modules\sequelize\lib\query interface.js:162:19)
根据文档,当我通知用户User.hasMany(Deadline)时,用户原型应该自动获取setdeadline、getdeadline、add/removeDeadline方法。你能帮我吗

顺便说一句 “续集”:“~2.0.0-beta.0”,

试试这个:

sequelize.drop().success(function () {
    sequelize.sync().success(function () {

        User.create({password:'bar', email:'ser'}).success(function(user) {
            Deadline.create({name:'learn js'}).success(function(deadline) {
                user.addDeadline(deadline).success(function() {
                    console.log('coolio!')
                })
            })
        })
    })
})

嗨,sdepold,不幸的是它仍然不起作用。请看一看你能试试这个吗?它对我非常有效。嗨,非常感谢,现在开始工作了。我不知道为什么我以前有问题。