我正在开发一个Sails.JS应用程序,该应用程序使用水线ORM对MySQL数据库执行CRUD操作。我的模型的属性id
使用beforeCreate
函数设置为自动递增,但是每次我尝试调用create
函数时,都会发生此错误:
{ “错误”:{ “ name”:“ UsageError”, “代码”:“ E_INVALID_NEW_RECORD”, “ details”:“缺少必需属性
id
的值。应为数字,但得到的是:未定义” }
这是我的模特:
module.exports = {
primaryKey: 'id',
attributes: {
id: {
type: "number",
required: true,
unique: true,
autoIncrement: true
},
name: {
type: "string",
required: true
},
beforeCreate : function(item, next) {
Counter.native(function(err, collection) {
if (err) console.log(err);
collection.findAndModify(
{ _id: "id" },
null,
{ $inc: { seq: 1 } },
{ new:true, upsert:true },
function(err, object){
if (err) console.log(err);
item.id = object.seq;
next();
}
);
});
}
};
这是我的模型控制器:
module.exports = {
create :function(req,res,next) {
let params = {name:req.param('name') };
model.create(params , function(err , createdData) {
if(err){
return res.badRequest({
error: err
});
}
else
{
return res.json({ added});
}
});
},