Параметризированный запрос INSERT с помощью node-mssql - PullRequest
1 голос
/ 06 апреля 2020

Я хочу параметризовать запрос вставки с node.js для SQL Сервер. К сожалению, это не будет работать, и я действительно не знаю, является ли это проблемой модуля Node или синтаксической ошибкой.

Код:

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

Ошибка:

at 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)
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 processTicksAndRejected (внутренняя / process / task_queues. js: 94: 5)
при asyn c Request._execute (C: \ Users \ A \ sqltest \ node_modules@hapi \ hapi \ lib \ request. js: 274: 9)

Используемые узловые модули:

  • hapi / hapi 19.0.5
  • ms sql: 6.0.1

У кого-нибудь есть идея или предложение?

1 Ответ

0 голосов
/ 10 апреля 2020

В соответствии с документацией для mssql вы можете использовать литералы шаблона es6 в своем выражении INSERT.

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

...