node-postgres中用于函数调用的Postgres语法

时间:2019-04-29 10:45:24

标签: node.js postgresql node-postgres

这是我如何使用express从我的node.js应用程序调用postgres

const db_pg = require("./db-pg");
app.get('/pg/', (req,res,next) => {
    db_pg.query(req).then((body) => {
        res.send(body);
    }).catch((err) => {
        next(err);
    })
});

在我的db-pg/index.js文件中(不包括pool设置的详细信息):

module.exports = {
    query: (req) => {
        return pool.query(req);
    }
};

我从postgreSQL收到以下错误:

syntax error at or near ","

我要执行的查询是:

req = {
    text: "SELECT * from my_func(?,?,?)",
    values: ["the_name", 20190303, 20190620]
}

我的语法有什么问题?

2 个答案:

答案 0 :(得分:0)

应该如下所示。

req = {
    text: "SELECT * from my_func(?,?,?)",
    values: ["the_name", 20190303, 20190620]
}

答案 1 :(得分:0)

只需将Chris White的评论变成答案:

node-postgres建议使用parameterized-queries传递参数。

这是SQL的正确语法(其余所有看起来都不错):

"SELECT * FROM my_func($1, $2, $3)"