我的表格模型称为“联系”:

var Contact = sequelize.define('contact', {
  userKey: Sequelize.STRING,
  gsm: {
      type: Sequelize.STRING,
      unique: true,
      required: true
  },
  firstName: Sequelize.STRING,
  lastName: Sequelize.STRING,
)}


例如,如果用户登录并通过表单将数据作为输入发布:userKey,gsm,firstname,lastname像这样
1234,mohamed,samer,KKKK(userKey来自他的loginSession)

我使用userKey将这些数据存储在mysql中
因此,如果用户再次添加相同的gsm,

它会发出警报,因为gsm必须是唯一的

但是我的问题是,如果具有不同userKey的用户进入应用程序并发布数据,他想添加另一个用户添加的gsm。

PS:只有一个表称为联系人

是否可以使用复合键或使Hooks序列化?

我的api.js:

exports.addNewContact = function (req, res) {
    var newcontact = {
        userKey: req.user.userKey, (// coming from login user session key)
        gsm: req.body.gsm,
        firstName: req.body.firstName,
        lastName: req.body.lastName,
    }
     Contact.create(newcontact).then(function (data){
        return res.status(200).send(data);
    }).catch(Sequelize.ValidationError, function (err) {
        return res.status(422).send(err.errors[0].message);
    }).catch(function (err) {
        return res.status(400).send(err.message);
    });

最佳答案

最后我得到了答案:

我更改了模型,如下所示:

var Contact = sequelize.define('contact', {
    userKey: Sequelize.STRING,
    role: Sequelize.STRING,
    gsm: {
        type: Sequelize.STRING,
        required: true
    },
    firstName: Sequelize.STRING,
    lastName: Sequelize.STRING
}, {
    indexes: [{
        unique: true,
        fields: ['userKey', 'gsm']
    }]
})


参考:https://stackoverflow.com/a/42199137/7862193

10-05 19:41