在postgre的节点中插入函数

Insert function in node in postgre

您好,我正在学习教程并尝试执行简单的插入查询但得到 404 error.I 我正在尝试使用邮递员输入值。

函数

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();
})
}

堆栈跟踪显示问题接近 "values"。我没有得到 it.following 我的流程 documentation.Something 查询有误吗?

堆栈跟踪

POST /api/users 401 83.997 毫秒 - 43 { [错误:“$”处或附近的语法错误] 姓名:'error', 长度:102, 严重性:'ERROR', 代码:'42601', 细节:未定义, 提示:未定义, 位置:'78', 内部位置:未定义, 内部查询:未定义, 其中:未定义, 模式:未定义, table:未定义, 列:未定义, 数据类型:未定义, 约束:未定义, 文件:'src\backend\parser\scan.l', 行:'1053', 例程:'scanner_yyerror'}

我和 Node.Bear 在一起的第 5 天。

错误代码 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 关键字之间没有 space。您的陈述应如下所示:

"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);

声明变量的愚蠢错误

这有效

 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)