Ошибка номера строки не отображается при использовании узла MS SQL? - PullRequest
0 голосов
/ 05 марта 2020

Я использовал базу данных MySQL с Nodejs некоторое время. Недавно я переключился на MS SQL с Nodejs

При использовании блока try catch с Nodejs и Mysql любая ошибка при выполнении запроса даст мне строку, в которой произошла ошибка

Итак, при использовании MySQL я сделал:

try{
   await pool.quer(`sql statement`)
}
catch(err){
  console.log(err)
}

Это даст мне ошибку и номер строки ошибки. Но с node-mssql я получаю:

{ RequestError: Incorrect syntax near 'Invalid'.
    at StreamEvents.req.once.err (C:\Users\David\Main Web\node_modules\mssql\lib\msnodesqlv8\request.js:463:17)
    at Object.onceWrapper (events.js:277:13)
    at StreamEvents.emit (events.js:189:13)
    at errors.forEach.err (C:\Users\David\Main Web\node_modules\msnodesqlv8\lib\reader.js:33:20)
    at Array.forEach (<anonymous>)
    at routeStatementError (C:\Users\David\Main Web\node_modules\msnodesqlv8\lib\reader.js:26:14)
    at invokeObject.end (C:\Users\David\Main  Web\node_modules\msnodesqlv8\lib\reader.js:258:13)
    at freeStatement (C:\Users\David\Main Web\node_modules\msnodesqlv8\lib\driver.js:160:13)
    at cppDriver.freeStatement (C:\Users\David\Main Web\node_modules\msnodesqlv8\lib\driver.js:150:11)
  code: 'EREQUEST',
  originalError:
   { Error: [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near 'Invalid'. sqlstate: '42000', code: 102 },
  name: 'RequestError',
  number: 102,
  state: undefined }

Это такая бесполезная ошибка. Я знаю, откуда исходит ошибка для этой ошибки, потому что сейчас выполняется только один оператор sql, но, поскольку моя программа растет, не зная, откуда исходит ошибка, ее будет сложно отладить. Это ожидаемое поведение node-mssql?

1 Ответ

0 голосов
/ 05 марта 2020

Если вы видите документацию здесь , в ней четко упоминается, что он возвращает с ошибкой, а что нет.

В нем четко упоминается, что «Эти ошибки инициализируются в мс-узле sql модуль и его исходный стек могут быть обрезаны. Вы всегда можете получить доступ к исходной ошибке с помощью err.originalError "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...