首页 > 解决方案 > 准备好的查询的 Node.js SQL Server 单引号问题

问题描述

我正在尝试使用 node.js 从 SQL Server 数据库中提取数据,并将数据传递给 Google Chatbot。

这就是我的 SQL Server 查询的样子

INSERT INTO @Return
    SELECT 'You' + '\' + 've assigned ' + CONVERT(varchar(4), COUNT(1)) + ' to yourself'

这是将数据发送到 Google Chatbot 的功能。

function GbWebhookFunction(){

    this.sendMessage = async function(strMessage){
        console.log(strMessage);
        fetch(webhookURL, {
            method: 'POST',
            headers: {
            'Content-Type': 'application/json; charset=UTF-8',
            },
            body: "{'text': '" + strMessage + "'}",
        }).then((response) => {
            console.log(response);
        });
    };
};

这输出:

You\ve assigned X to yourself

我试图将下面的代码添加到我的函数中,但这不起作用。

strMessage = strMessage.replace("\", "'");

\从我的 SQL 查询中删除了一个,但输出的是:

Youe assigned X to yourself

当我\从 SQL 查询中删除时输出

关于如何\用单引号替换的任何想法?

标签: node.jssql-server

解决方案


在您的查询中,您忘记添加单引号。查询应该很可能是

INSERT INTO @Return
    SELECT 'You\'ve assigned ' + CONVERT(varchar(4), COUNT(1)) + ' to yourself'

编辑

基于一些提供的错误,我建议使用双单引号。这意味着 SQL 查询应如下所示:

INSERT INTO @Return
    SELECT 'You''ve assigned ' + CONVERT(varchar(4), COUNT(1)) + ' to yourself'

推荐阅读