Sails.js 如何在post请求中使用sailsjs模型遵守guid主键

Sails.js 如何在post请求中使用sailsjs模型遵守guid主键,sails.js,postman,Sails.js,Postman,如果没有提供id,我想使用新的guid,但如果提供id,则使用该id。 如果新guid存在,我希望更新而不是创建新实例 如果我发送 { “名称”:“第一次报告”, “id”:“255af682-43c9-4d75-b0fb-7664ff51304b”, “拥有人”:9 } 通过邮递员对{{url}}/report的post请求-我运行sailsjs的服务器。。。第二次创建新记录时 我试过了 if ( values.hasOwnProperty('id') ) {

如果没有提供id,我想使用新的guid,但如果提供id,则使用该id。 如果新guid存在,我希望更新而不是创建新实例

如果我发送 { “名称”:“第一次报告”, “id”:“255af682-43c9-4d75-b0fb-7664ff51304b”, “拥有人”:9 } 通过邮递员对{{url}}/report的post请求-我运行sailsjs的服务器。。。第二次创建新记录时

我试过了

        if ( values.hasOwnProperty('id') ) {
            /* ignore */
        } else {
            values.id = uuid.v4();
        }
但我第二次发布时,它没有注意到主键

这是报告模型

var uuid = require('node-uuid');

module.exports = {

    attributes: {
        id: {
            type: 'string',
            primaryKey: true
        },
        name: { type: 'string' },
        owner: {
          model: 'client'
        }
    },

    beforeCreate: function(values, callback) {
        if ( values.hasOwnProperty('id') ) {
            /* ignore */
        } else {
            values.id = uuid.v4();
        }
        callback();
    }

};

我通过将模型连接更改为使用mysql解决了这个问题

  • 更改了config/connections.js中的mysql连接信息
  • 创建了具有必要权限的mysql数据库
  • 将config/models.js中的连接值更改为mysql
  • 样本错误结果

    {
      "error": "E_VALIDATION",
      "status": 400,
      "summary": "1 attribute is invalid",
      "invalidAttributes": {
        "PRIMARY": [
          {
            "value": "255af682-43c9-4d75-b0fb-7664ff51304b",
            "rule": "unique",
            "message": "A record with that `PRIMARY` already exists (`255af682-43c9-4d75-b0fb-7664ff51304b`)."
          }
        ]
      }
    }