运行中的SQL会在Node和pg-promise中产生类型和语法错误

时间:2018-11-25 20:20:13

标签: node.js postgresql express pg-promise

我正在使用Node和Express,并使用pg-promise库与我的Postgres数据库进行交互。我设置了许多查询,它们都工作正常。我编写的查询与在Postgres命令行中进行测试的其余查询无异。它所做的只是从属于特定用户的“奖励”表中的每个条目中获取文件名列表。但是,当我的服务器尝试执行代码时,它将引发多个异常:

  

TypeError:路径必须是字符串或缓冲区

     

\“ JOIN \”或附近的语法错误

相关代码为:

const GET_ALL_PDFS = PS('getAllPDFs', `SELECT pdf_filename AS filenames
                                   FROM awards
                                   JOIN users ON users.id = awards.award_giver
                                   WHERE users.id = $1;`);

UserManagementDAO.getAllPDFs = (userId, cb) => {
db.any(GET_ALL_PDFS, userId)
    .then(result => {
        cb(null, result);
    })
    .catch(err => {
        winston.error(`Error fetching all PDF filenames for user ${userId}: ${err}`);
        cb(err);
    });
};

我尝试使用''代替``,将SQL语句放在一行上,使用db.manyOrNone代替db.any重写整个SQL语句,直接将SQL语句放入而不是使用预准备语句,显式使用INNER JOIN代替JOIN,到目前为止,没有任何效果。我总是会遇到相同的错误。

0 个答案:

没有答案