首页 > 解决方案 > 由于 SequelizeUniqueConstraintError,SQLite PUT 方法不起作用

问题描述

我构建了一个 PUT 方法来更新/编辑 sqlite db 中的插入/现有记录,并且在触发 put 方法时,在网络选项卡中为 PUT 请求拉出以下错误消息。这个问题似乎与SequelizeUniqueConstraintError它有关,它会在更新时自动创建一个 id。有什么想法或已知的解决方法吗?:

{
"error":"创建用户时出错。", "err":{
"name":"SequelizeUniqueConstraintError", "errors":[
{
"message":"id 必须是唯一的", "type ":"唯一违规", "路径":"id", "值":1, "origin":"DB", "instance":{
"id":1, "email":"el@gmail.com", "password":"$2a$08$HnRjfTzqsvwzobMQYM8bT.IkPbTSe6aOxy50l8/cUuuVhOgbl513.", "firstName":"el", "lastName":"leo" , "jobDescription":"test", "gains":"100", "costs":"50", "balance":50, "isAdmin":null, "youAgree":null, "createdAt":"2019- 03-03T09:39:31.295Z", "updatedAt":"2019-03-26T19:03:21.665Z" }, "validatorKey":"not_unique", "validatorName":null,“验证器参数”:[

        ]
     }
  ],
  "fields":[  
     "id"
  ],
  "parent":{  
     "errno":19,
     "code":"SQLITE_CONSTRAINT",
     "sql":"INSERT INTO `Users` (`id`,`email`,`password`,`firstName`,`lastName`,`jobDescription`,`gains`,`costs`,`balance`,`isAdmin`,`youAgree`,`createdAt`,`updatedAt`) VALUES (1,'el@gmail.com','$2a$08$HnRjfTzqsvwzobMQYM8bT.IkPbTSe6aOxy50l8/cUuuVhOgbl513.','el','leo','test','100','50',50,NULL,NULL,'2019-03-03 09:39:31.295 +00:00','2019-03-26 19:03:21.665 +00:00');"
  },
  "original":{  
     "errno":19,
     "code":"SQLITE_CONSTRAINT",
     "sql":"INSERT INTO `Users` (`id`,`email`,`password`,`firstName`,`lastName`,`jobDescription`,`gains`,`costs`,`balance`,`isAdmin`,`youAgree`,`createdAt`,`updatedAt`) VALUES (1,'el@gmail.com','$2a$08$HnRjfTzqsvwzobMQYM8bT.IkPbTSe6aOxy50l8/cUuuVhOgbl513.','el','leo','test','100','50',50,NULL,NULL,'2019-03-03 09:39:31.295 +00:00','2019-03-26 19:03:21.665 +00:00');"
  },
  "sql":"INSERT INTO `Users` (`id`,`email`,`password`,`firstName`,`lastName`,`jobDescription`,`gains`,`costs`,`balance`,`isAdmin`,`youAgree`,`createdAt`,`updatedAt`) VALUES (1,'el@gmail.com','$2a$08$HnRjfTzqsvwzobMQYM8bT.IkPbTSe6aOxy50l8/cUuuVhOgbl513.','el','leo','test','100','50',50,NULL,NULL,'2019-03-03 09:39:31.295 +00:00','2019-03-26 19:03:21.665 +00:00');"

} }

这是供参考的示例 PUT 方法:

put (user) { console.log('put user: ', JSON.stringify(user)) var userId = user.id console.log('put userId: ', userId) return Api().put(users/${user.id}, user) // return Api().put('users', userId, user) }

标签: javascriptsqlite

解决方案


推荐阅读