fix: anonymous ticket submit 500 - undefined rgu param
Root cause: after UID internalization, anonymous form no longer sends reporter_game_uid, so req.body.reporter_game_uid was undefined. The countRow query (outside try/catch) passed undefined to mysql2 which throws 'Bind parameters must not contain undefined' - escaping to the global error middleware -> 500 '服务器内部错误' for ALL anonymous ticket types (appeal/report/suggestion). Fix: default rgn/rgu to '' when absent.
This commit is contained in:
@@ -147,7 +147,8 @@ router.post('/', ticketAnonLimiter, optionalAuth, upload.array('files', 5), fina
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 身份解析: 登录用户可选用自己绑定的任一身份(网易端/皮肤站); 匿名用表单值
|
// 身份解析: 登录用户可选用自己绑定的任一身份(网易端/皮肤站); 匿名用表单值
|
||||||
let rgn = reporter_game_name, rgu = reporter_game_uid;
|
// 注: 匿名表单无 reporter_game_uid 字段(UID 已内置化), 必须兜底 '' 避免 mysql2 对 undefined 参数抛错
|
||||||
|
let rgn = reporter_game_name || '', rgu = reporter_game_uid || '';
|
||||||
if (req.user) {
|
if (req.user) {
|
||||||
if (reporter_game_name && reporter_game_name !== req.user.game_name) {
|
if (reporter_game_name && reporter_game_name !== req.user.game_name) {
|
||||||
const ident = await getRow('SELECT id FROM user_identities WHERE user_id = ? AND game_name = ?', [req.user.id, reporter_game_name]);
|
const ident = await getRow('SELECT id FROM user_identities WHERE user_id = ? AND game_name = ?', [req.user.id, reporter_game_name]);
|
||||||
|
|||||||
Reference in New Issue
Block a user