我试了很多回,只要把有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的控制台中没有看出任何区别。
从入门到实战,一站式掌握 Node.js+Express+Koa2
了解课程