在节点 js 应用程序内的 Postgres 查询中转义单引号

Escape single quote in Postgres query inside node js app

这是我的节点 js 代码中的一行:

var qry = 'INSERT INTO "sma"."RMD"("UserId","Favourite")  VALUES (' + req.body.user + ',' + JSON.stringify(req.body.favourite) + ')'

我想在JSON.stringify(req.body.favourite)前插入单引号。但我无法逃避单引号。我无法调试问题,因为我正在将代码上传到 predix 云服务器 知道如何实现吗?

为什么不使用准备好的语句?

var qry = 'INSERT INTO "sma"."RMD"("UserId","Favourite")  VALUES (, )';
client.query(qry, [ req.body.user, JSON.stringify(req.body.favourite])'

您还可以使用模板文字来构建查询

使用 back-tick 字符的模板文字 Check main answer here

alert(`Use "double" and 'single' quotes in the same string`);
alert(`The escape the \` back-tick character in a string`);

模板文字为变量插值、multi-line 字符串等提供了简洁的语法。