Nodejs Sequelize 没有插入
Nodejs Sequelize is not inserting
好吧,我已经盯着这个看了 2 个小时了,我就是找不到错误:
我有以下数据库table:
如果您看不出它有 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'});
注意我用来添加新元素的添加函数。
这是我的 competence
变量:
然而一旦我保存 none 我的回调函数被调用而不是 onSuccess
也不是 onError
谁能帮帮我,我快疯了!!
Sequelize 使用 bluebird for promises. So you should use .then
and .catch
methods, not .success
(.ok
) and .error
. .error
has another meaning in bluebird (see here)。所以例如 .add
方法可以这样写:
add: function (onSuccess, onError) {
var competence = this.dataValues;
Competence.build(competence).save().then(onSuccess).catch(onError);
}
好吧,我已经盯着这个看了 2 个小时了,我就是找不到错误:
我有以下数据库table:
如果您看不出它有 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'});
注意我用来添加新元素的添加函数。
这是我的 competence
变量:
然而一旦我保存 none 我的回调函数被调用而不是 onSuccess
也不是 onError
谁能帮帮我,我快疯了!!
Sequelize 使用 bluebird for promises. So you should use .then
and .catch
methods, not .success
(.ok
) and .error
. .error
has another meaning in bluebird (see here)。所以例如 .add
方法可以这样写:
add: function (onSuccess, onError) {
var competence = this.dataValues;
Competence.build(competence).save().then(onSuccess).catch(onError);
}