我想使用用于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)
使用的节点模块:
有人有想法或建议吗?
根据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}))`