Sails.JS:AUTO INCREMENT实施失败

时间:2018-08-19 15:36:48

标签: mysql node.js sails.js waterline

我正在开发一个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});
       }
       });
 },    

0 个答案:

没有答案