해결된 질문
작성
·
559
0
팔로우 기능 구현 중에 follow.PRIMARY에 문제가 있다는 에러가 생겼습니다
mysql table을 보면 FollowingId, FollowerId값은 잘 들어가져 있고,
redux에는 FOLLOW_SUCCESS까지 나타납니다
그런데 FOLLOW_SUCCESS뒤에 FOLLOW_FAILURE가 나오면서 아래와 같은 'follow.PRIMARY must be unique' 에러가 백앤드 서버에서 발생합니다. 더블클릭을 하지 않았는데도 두번 요청이 들어가는 건가요? 어떻게 해결해야하는지 모르겠습니다 도와주세요 제로초님~
PATCH /user/1/follow 200 176.212 ms - 12
UniqueConstraintError [SequelizeUniqueConstraintError]: Validation error
at Query.formatError (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\dialects\mysql\query.js:218:16)
at Query.run (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\dialects\mysql\query.js:54:18)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\sequelize.js:619:16
at async MySQLQueryInterface.bulkInsert (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\dialects\abstract\query-interface.js:818:21)
at async recursiveBulkCreate (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\model.js:2698:25)
at async Function.bulkCreate (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\model.js:2824:12)
at async Promise.all (index 0)
at async BelongsToMany.add (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\associations\belongs-to-many.js:740:30)
at async C:\Users\HOME\Documents\ymillonga\back\routes\user.js:168:9 {
errors: [
ValidationErrorItem {
message: 'follow.PRIMARY must be unique',
type: 'unique violation',
path: 'follow.PRIMARY',
value: '1-2',
origin: 'DB',
instance: null,
validatorKey: 'not_unique',
validatorName: null,
validatorArgs: []
}
],
fields: { 'follow.PRIMARY': '1-2' },
parent: Error: Duplicate entry '1-2' for key 'follow.PRIMARY' at Packet.asError (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\packets\packet.js:712:17)
at Query.execute (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\commands\command.js:28:26)
at Connection.handlePacket (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\connection.js:425:32)
at PacketParser.onPacket (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\connection.js:75:12)
at PacketParser.executeStart (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\packet_parser.js:75:16)
at Socket.<anonymous> (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\connection.js:82:25)
at Socket.emit (events.js:314:20)
at addChunk (_stream_readable.js:303:12)
at readableAddChunk (_stream_readable.js:279:9)
at Socket.Readable.push (_stream_readable.js:218:10) {
code: 'ER_DUP_ENTRY',
errno: 1062,
sqlState: '23000',
sqlMessage: "Duplicate entry '1-2' for key 'follow.PRIMARY'",
sql: "INSERT INTO `Follow` (`createdAt`,`updatedAt`,`FollowingId`,`FollowerId`) VALUES ('2020-11-29 10:47:14','2020-11-29
10:47:14',1,2);",
parameters: undefined
},
original: Error: Duplicate entry '1-2' for key 'follow.PRIMARY'
at Packet.asError (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\packets\packet.js:712:17)
at Query.execute (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\commands\command.js:28:26)
at Connection.handlePacket (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\connection.js:425:32)
at PacketParser.onPacket (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\connection.js:75:12)
at PacketParser.executeStart (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\packet_parser.js:75:16)
at Socket.<anonymous> (C:\Users\HOME\Documents\ymillonga\back\node_modules\mysql2\lib\connection.js:82:25)
at Socket.emit (events.js:314:20)
at addChunk (_stream_readable.js:303:12)
at readableAddChunk (_stream_readable.js:279:9)
at Socket.Readable.push (_stream_readable.js:218:10) {
code: 'ER_DUP_ENTRY',
errno: 1062,
sqlState: '23000',
sqlMessage: "Duplicate entry '1-2' for key 'follow.PRIMARY'",
sql: "INSERT INTO `Follow` (`createdAt`,`updatedAt`,`FollowingId`,`FollowerId`) VALUES ('2020-11-29 10:47:14','2020-11-29
10:47:14',1,2);",
parameters: undefined
},
sql: "INSERT INTO `Follow` (`createdAt`,`updatedAt`,`FollowingId`,`FollowerId`) VALUES ('2020-11-29 10:47:14','2020-11-29 10:47:14',1,2);"
}
SequelizeUniqueConstraintError: Validation error
at Query.formatError (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\dialects\mysql\query.js:218:16)
at Query.run (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\dialects\mysql\query.js:54:18)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\sequelize.js:619:16
at async MySQLQueryInterface.bulkInsert (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\dialects\abstract\query-interface.js:818:21)
at async recursiveBulkCreate (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\model.js:2698:25)
at async Function.bulkCreate (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\model.js:2824:12)
at async Promise.all (index 0)
at async BelongsToMany.add (C:\Users\HOME\Documents\ymillonga\back\node_modules\sequelize\lib\associations\belongs-to-many.js:740:30)
at async C:\Users\HOME\Documents\ymillonga\back\routes\user.js:168:9
PATCH /user/1/follow 500 387.485 ms - 1353
back/models/user.js
/back/routes/user.js