首页 > 解决方案 > Sails.JS:自动增量实施失败

问题描述

我正在开发一个 Sails.JS 应用程序,该应用程序使用水线 ORM 对 MySQL 数据库执行 CRUD 操作。我的模型有一个属性id设置为使用该函数自动递增beforeCreate,但每次我尝试调用该create函数时,都会发生此错误:

{“错误”:{“名称”:“UsageError”,“代码”:“E_INVALID_NEW_RECORD”,“详细信息”:“所需属性的缺失值。需要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});
       }
       });
 },    

标签: mysqlnode.jssails.jswaterline

解决方案


推荐阅读