我的表格模型称为“联系”:
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