你好我正在关注一个教程并尝试做一个简单的插入查询,但得到404错误。我正在尝试使用邮递员输入值。
功能
function insertUser(req, res, next){
req.body.users = parseInt(req.body.users);
db.none('INSERT INTO office.users (role_id, office_id, user_name, full_name) ' +
'VALUES (${role_id}, ${office_id}, ${user_name}, ${full_name})', req.body.users)
.then(function(){
res.status(200)
.json({
status: 'success',
message: 'Inserted one user'
});
})
.catch(error => {
console.log(error);
next();
})
}
堆栈跟踪说问题接近“值”。我没有得到它。随后我随文档流动。查询有问题吗?
堆栈跟踪
POST / api / users 401 83.997 ms - 43 {[错误:语法错误在或附近“$”] 名称:'错误', 长度:102, 严重性:'错误', 代码:'42601', 细节:未定义, 提示:未定义, 位置:'78', internalPosition:undefined, internalQuery:undefined, 其中:undefined, schema:undefined, 表:undefined, 专栏:未定义, dataType:undefined, 约束:未定义, file:'src \ backend \ parser \ scan.l', 行:'1053', 例程:'scanner_yyerror}}
我第五天和Node.Bear在一起。
答案 0 :(得分:0)
错误代码42601是postgres语法错误。如果您要将您的sql语句打印到页面,您会看到如下内容:
"INSERT INTO office.users VALUES (role_id,office_id,user_name,full_name)values(${role_id},${office_id},${user_name},${full_name})"
这有多少问题。首先,使用VALUES
列在您的列之前。其次,列列表与(正确的)values
关键字之间没有空格。您的陈述应如下所示:
"INSERT INTO office.users (role_id, office_id, user_name, full_name) VALUES (${role_id}, ${office_id}, ${user_name}, ${full_name})"
这意味着您的javascript需要看起来更像这样:
db.none('INSERT INTO office.users (role_id, office_id, user_name, full_name) ' +
'VALUES (${role_id}, ${office_id}, ${user_name}, ${full_name})', req.body.users);
答案 1 :(得分:0)
愚蠢的错误声明变量
这有效
db.none('INSERT INTO office.users(role_id, office_id, user_name, full_name, password)' +
'values(${role_id},${office_id},${user_name},${full_name},${password})', req.body)