请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

注册时总是因为genPassword和escape函数报500的错误

我试了很多回,只要把有escape和genPassword的那三行注释掉就完全没问题,但是在login那个函数中,这两个函数是可以正常工作的啊。不知道是什么原因。
我看以前有个同学提出过一模一样的问题,但是没有得到答案。能不能请老师这次看一看呢?非常非常感谢。
这是我的代码:
const registerUser = (req) => {
const {
username,
password,
email
} = req.body

username = escape(username)
password = genPassword(password)
password = escape(password)

const sql = `
    insert into users (username, password, game, email) 
    values (${username}, ${password}, '${game}', '${email}');
`
return exec(sql).then(insertData => {
    return{
        id:insertData.insertId
    }       
})

}
node端只有500这个简单的报错信息,头两行应该是无关的,每次都出现的。
图片描述

找到一种解决办法了:
见上面代码,以前是直接给controller/user.js传入req,现在变为分别传入req.body中的变量,就可以解决这个500的问题,让escape和genPassword函数都能正常运行。
const registerUser = (username, password, email) => {
username = escape(username)
password = genPassword(password)
password = escape(password)
const sql = insert into users (username, password email) values (${username}, ${password}, '${email}');
return exec(sql).then(insertData => {
return{
id:insertData.insertId
}
})
}
希望能对后面遇到同样问题的同学有帮助。
至于为什么这两种传参方法会不同我也不清楚,我把两种的username都输出来看了,从node.js的控制台中没有看出任何区别。

正在回答 回答被采纳积分+3

2回答

双越 2021-06-20 23:11:38

看你截图,只有一个 500 ,没有详细的报错信息,比较怪异。

我建议你先不要管这三行代码了,先保证程序正常运行,继续往下学习。学完之后再回头看这个问题。

0 回复 有任何疑惑可以回复我~
  • 提问者 hpbrave #1
    我已经把后面所有的内容都学完做完了,这个注册是我现在自己加上的,请老师帮忙找找问题吧。上一个提出同样问题的同学也是只得到了这样的回答,如果这次把这个问题解决了,以后遇到同样问题的同学就能搜索到这个回答了。非常感谢老师。
    回复 有任何疑惑可以回复我~ 2021-06-20 23:28:17
  • 双越 回复 提问者 hpbrave #2
    好的。我得先试着去复线一下问题,之前也没遇到过。
    回复 有任何疑惑可以回复我~ 2021-06-21 08:18:39
  • 提问者 hpbrave 回复 双越 #3
    好的,非常感谢老师,我今晚也继续找找原因。
    回复 有任何疑惑可以回复我~ 2021-06-21 17:22:25
双越 2021-06-20 17:17:20

nodejs 的详细报错信息,贴图给我吧。

0 回复 有任何疑惑可以回复我~
  • 提问者 hpbrave #1
    我把图贴到上面了,因为回复这里好像不能贴。就只有简单的500报错,上面两行是每次都出现的,应该和注册无关。非常感谢。
    回复 有任何疑惑可以回复我~ 2021-06-20 19:19:08
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信