Node.js+MySQL注册页报ER_EMPTY_QUERY空查询错误求排查方案
错误原因
controllers/auth.js 文件中第一次调用 db.query 方法时,SQL语句字符串和参数数组之间遗漏了逗号分隔符:
// 错误写法:缺少逗号 db.query('SELECT email FROM users WHERE email = ?' [email], async (error, results) => {
JavaScript会将这段代码识别为对字符串取索引操作,而非给db.query传递两个独立参数,最终传入的SQL语句为undefined,因此触发ER_EMPTY_QUERY空查询错误。
修复方案
在SQL字符串和参数数组之间添加逗号即可:
// 修正后写法 db.query('SELECT email FROM users WHERE email = ?', [email], async (error, results) => {
附加优化建议
你当前的代码中,查询出错后仅打印了错误日志,没有给前端返回响应,会导致请求一直挂起,建议补充错误响应逻辑:
if(error) { console.log(error) return res.render('register', { message: '注册请求处理失败,请稍后重试' }) }
内容的提问来源于stack exchange,提问作者user14367514
相关产品推荐
相关产品推荐

