使用node-mssql进行参数化的INSERT查询 [英] Parametized INSERT query with node-mssql

查看:572
本文介绍了使用node-mssql进行参数化的INSERT查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I want to parametrize an insert query with node.js for SQL Server. Unfortunately it will not work and I don't really know if it's a Node module issue or a syntax failure.

代码:

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';
    }
  }
});

错误:

在exports.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上(内部/进程/task_queues.js:94:5)
在异步Request._execute(C:\ Users \ A \ sqltest \ node_modules @ hapi \ hapi \ lib \ request.js:274:9)

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

使用的节点模块:

  • hapi/hapi 19.0.5
  • mssql:6.0.1

有人有想法或建议吗?

Does anyone have an idea or or a suggestion?

推荐答案

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

According to the documentation for mssql you can use es6 template literals in you INSERT statement.

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

这篇关于使用node-mssql进行参数化的INSERT查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆