Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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 TypeError:无法读取null的属性“1”_Javascript_Node.js_Sequelize.js - Fatal编程技术网

Javascript Sequelize TypeError:无法读取null的属性“1”

Javascript Sequelize TypeError:无法读取null的属性“1”,javascript,node.js,sequelize.js,Javascript,Node.js,Sequelize.js,通常,这种类型的错误不会成为问题,但我无法理解发生这种情况的原因: 以下是我的设置: router.route('/api/academyModule') .post(function (req, res) { req.body.academyModule.module_id = req.body.academyModule.module.id; req.body.academyModule.module_module_type_id = req.body.academyMod

通常,这种类型的错误不会成为问题,但我无法理解发生这种情况的原因:

以下是我的设置:

router.route('/api/academyModule')
.post(function (req, res) {

    req.body.academyModule.module_id = req.body.academyModule.module.id;
    req.body.academyModule.module_module_type_id = req.body.academyModule.module.module_type.id;
    var am = AcademyModule.build(req.body.academyModule);
    am.add(req.body.academyModule.requirements, req.body.academyModule, function (success) {
            res.json({id: this[null]});

        },
        function (err) {
            res.status(err).send(err);
        });
    if(req.body.teams != null)
    {
        req.body.teams.forEach(function(y)
        {
            var atm = academy_team_has_academy_module.build({academy_team_id: y.id, academy_id: y.academy_id, academy_module_module_id: req.body.academyModule.module_id })
            atm.add(function(success)
            {

            }, function(err)
            {
                res.status(err).send(err);
            });
        });
    }
})
为此,我有以下模型:

    academy_team_has_academy_module = sequelize.define('academy_team_has_academy_module', {
    academy_team_id: {
        type: DataTypes.INTEGER,
        primaryKey: true,
        autoIncrement: false
    },
    academy_id: DataTypes.INTEGER,
    academy_module_module_id: DataTypes.INTEGER
}, {
    freezeTableName: true,
    instanceMethods: {
        add: function (onSuccess, onError) {
            academy_team_has_academy_module.build(this.dataValues)
                .save().ok(onSuccess).error(onError);
        }
    }
});
我确信这会发生在这个模型中,而不是AcademyModule中,因为当我删除这个代码时,它运行时没有任何问题。因此,在我的控制台中,我得到以下打印输出:

    Executing (default): INSERT INTO `requirements` (`id`,`value`,`requirement_type_id`) VALUES (DEFAULT,5,'2');
Executing (default): INSERT INTO `academy_team_has_academy_module` (`academy_team_id`,`academy_id`,`academy_module_module_id`) VALUES (1,3,11);
Executing (default): INSERT INTO `academy_module` (`academy_id`,`module_id`,`module_module_type_id`,`sort_number`,`requirements_id`) VALUES ('3',11,4,4,40);
就在我得到:

    /var/www/learningbankapi/src/node_modules/mysql/lib/protocol/Parser.js:82
        throw err;
              ^
TypeError: Cannot read property '1' of null
    at module.exports.Query.formatError (/var/www/learningbankapi/src/node_modules/sequelize/lib/dialects/mysql/query.js:155:23)
    at Query.module.exports.Query.run [as _callback] (/var/www/learningbankapi/src/node_modules/sequelize/lib/dialects/mysql/query.js:38:23)
    at Query.Sequence.end (/var/www/learningbankapi/src/node_modules/mysql/lib/protocol/sequences/Sequence.js:96:24)
    at Query.ErrorPacket (/var/www/learningbankapi/src/node_modules/mysql/lib/protocol/sequences/Query.js:93:8)
    at Protocol._parsePacket (/var/www/learningbankapi/src/node_modules/mysql/lib/protocol/Protocol.js:271:23)
    at Parser.write (/var/www/learningbankapi/src/node_modules/mysql/lib/protocol/Parser.js:77:12)
    at Protocol.write (/var/www/learningbankapi/src/node_modules/mysql/lib/protocol/Protocol.js:39:16)
    at Socket.Connection.connect (/var/www/learningbankapi/src/node_modules/mysql/lib/Connection.js:82:28)
    at Socket.EventEmitter.emit (events.js:95:17)
    at Socket.stream.pause.paused (_stream_readable.js:746:14)
    at Socket.EventEmitter.emit (events.js:92:17)
    at emitReadable_ (_stream_readable.js:408:10)
    at emitReadable (_stream_readable.js:404:5)
    at readableAddChunk (_stream_readable.js:165:9)
    at Socket.Readable.push (_stream_readable.js:127:10)
    at TCP.onread (net.js:526:21)
我调试了整件事,似乎找不到任何未定义的变量。这里可能出了什么问题?

你的问题是一个外国钥匙订婚者。Sequelize正在尝试抛出新错误,但get出现意外错误。消息。如果您的配置很好,这可能是sequelize的一个bug

如果可能的话,停用国外的违禁品检查可能会解决你的问题


请参阅:

到目前为止,我还没有使用sequelize,但您正在某个匿名函数中使用它,而没有任何绑定。