带有node-mssql的参数化INSERT查询

问题描述 投票:1回答:1

我想使用用于SQL Server的node.js参数化插入查询。不幸的是,它不起作用,我真的不知道这是节点模块问题还是语法错误。

代码:

server.route({
    method: 'POST',
    path: '/',
    handler: async (request, h) => {

    try {
        await pool.query("INSERT INTO sigfoxmessages(device,data,station,rssi,unix_timestamp) VALUES($1,$2,$3,$4,$5))"
        [request.payload.device, request.payload.data, request.payload.station, request.payload.rssi, request.payload.time]);

        return h.response('Callback received').code(200);
    }
    catch (err) {
        console.log("SQL Err", err.stack);
        return 'Error';
    }
  }
});

错误:

在export.Manager.execute上(C:\ Users \ A \ sqltest \ node_modules @ hapi \ hapi \ lib \ toolkit.js:60:33)在Object.internals.handler(C:\ Users \ A \ sqltest \ node_modules @ hapi \ hapi \ lib \ handler.js:46:48)在exports.execute(C:\ Users \ A \ sqltest \ node_modules @ hapi \ hapi \ lib \ handler.js:31:36)在Request._lifecycle(C:\ Users \ A \ sqltest \ node_modules @ hapi \ hapi \ lib \ request.js:365:68)在processTicksAndRejections(internal / process / task_queues.js:94:5)在异步Request._execute(C:\ Users \ A \ sqltest \ node_modules @ hapi \ hapi \ lib \ request.js:274:9)

使用的节点模块:

  • hapi / hapi 19.0.5
  • mssql:6.0.1

有人有想法或建议吗?

node.js sql-server parameters sql-insert
1个回答
0
投票

根据mssql的文档,您可以在INSERT语句中使用es6模板文字。

pool.query`INSERT INTO sigfoxmessages (device,data,station,rssi,unix_timestamp) VALUES(${request.payload.device}, ${request.payload.data}, ${request.payload.station}, ${request.payload.rssi}, ${request.payload.time}))`

文档:https://www.npmjs.com/package/mssql

© www.soinside.com 2019 - 2024. All rights reserved.