繁体   English   中英

Nodejs Sequelize未插入

[英]Nodejs Sequelize is not inserting

好吧,我现在已经呆呆地盯着这个看了两个小时,而我根本找不到错误:

我有以下数据库表:

在此处输入图片说明

如果您不能告诉它有4列:

  • ID
  • 名称
  • 的organization_ID
  • competence_type_id

使用sequelize我正在使用以下代码:

var Competence = sequelize.define('competence', {
            id: DataTypes.INTEGER,
            name: DataTypes.STRING,
            organization_id: DataTypes.INTEGER,
            competence_type_id: DataTypes.INTEGER

        }, {
            freezeTableName: true,
            instanceMethods: {
                retrieveAll: function (org_id,onSuccess, onError) {
                    Location.findAll({where: {organization_id: org_id}}, {})
                        .ok(onSuccess).error(onError);
                },
                retrieveById: function (quote_id, onSuccess, onError) {
                    Location.find({where: {id: quote_id}}, {raw: true})
                        .success(onSuccess).error(onError);
                },
                add: function (onSuccess, onError) {
                    var competence = this.dataValues;
                    Competence.build(competence)
                        .save().ok(onSuccess).error(onError);
                },
                updateById: function (quote_id, onSuccess, onError) {
                    var id = quote_id;
                    var quotes = this.quotes;

                    Location.update({quotes: quotes}, {where: {id: id}})
                        .success(onSuccess).error(onError);
                },
                removeById: function (quote_id, onSuccess, onError) {
                    Location.destroy({where: {id: quote_id}}).success(onSuccess).error(onError);
                }
            }
        }
    ),
    competence_type = sequelize.define('competence_type', {
        id: DataTypes.INTEGER,
        name: DataTypes.STRING
    });
Competence.belongsTo(competence_type,{foreignKey: 'competence_type_id'});

注意add函数,这是我用来添加新元素的函数。

这是我的competence变量:

在此处输入图片说明

但是,一旦保存,就不会再调用onSuccessonError

任何人都可以在这里帮助我,我快要疯了!

Sequelize将蓝鸟用于承诺。 所以,你应该使用.then.catch方法,而不是.success.ok )和.error .error在bluebird中具有另一种含义(请参阅此处 )。 因此,例如.add方法可以写成:

add: function (onSuccess, onError) {
    var competence = this.dataValues;

    Competence.build(competence).save().then(onSuccess).catch(onError);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM