簡體   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