我目前正在使用express和postgres制作一个带有数据库的webapp,但无法实现注册。 这是用户将用户名,名称和密码键入表单,然后发布到“ / registerUser”路由后的一小段内容。这是“ / registerUser”路线上的发帖请求。 pool.query适用于check_username,但是不适用于add_user查询。
以下是两个查询: check_username ='从用户名= $ 1的用户中选择1个' add_user ='将用户值(用户名,名称,密码)插入到值($ 1,$ 2,$ 3)'
router.post('/', function(req, res, next) {
var name = req.body.name;
var username = req.body.username;
var password = req.body.password;
pool.query(sql_query.query.check_username, [username], (err, data) =>{
if(data.rows[0] != undefined) {
console.log(`re register again!`);
res.redirect('/registerUser');
} else {
console.log("adding to database")
// Generate salt
bcrypt.genSalt(10, (err, salt) =>{
if(err) {
console.log(err);
}
// hash it with salt
bcrypt.hash(password, salt, (err,hash)=>{
if(err) console.log(err)
//password = hash
console.log(`${username} + ${password}`);
// save to database
pool.query(sql_query.query.add_user, [name, username, password], (err, data) => {
console.log("pass")
res.redirect("/")
});
});
});
}
});
});
这里到底是什么问题?可能是我无法嵌套pool.queries吗?
答案 0 :(得分:0)
答案是插入查询存在语法错误。表格列前面不应有VALUES。