簡體   English   中英

我如何從 sequelize.js 給出的錯誤中訪問 sql 消息

[英]How do i access the sql message from the error given by sequelize.js

在我的 Sequelize Create function 中傳遞無效 ID 時,Sequlize 返回以下格式的錯誤。

Error at Query.run (B:\Node JS\Backend Express\node_modules\sequelize\lib\dialects\mysql\query.js:52:25) at B:\Node JS\Backend Express\node_modules\sequelize\lib\sequelize.js:314:28 at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async MySQLQueryInterface.insert (B:\Node JS\Backend Express\node_modules\sequelize\lib\dialects\abstract\query-interface.js:308:21) at async model.save (B:\Node JS\Backend Express\node_modules\sequelize\lib\model.js:2432:35) at async time_sheet.create (B:\Node JS\Backend Express\node_modules\sequelize\lib\model.js:1344:12) at async Object.createtimesheet (B:\Node JS\Backend Express\services\Timesheet.service.js:8:13) at async createtimesheet (B:\Node JS\Backend Express\controller\timesheet.controller.js:22:18) { name: 'SequelizeDatabaseError', parent: Error: Incorrect datetime value: 'Invalid date' for column 'tsdate' at row 1 at Packet.asError (B:\Node JS\Backend Express\node_modules\mysql2\lib\packets\packet.js:728:17) at Execute.execute (B:\Node JS\Backend Express\node_modules\mysql2\lib\commands\command.js:29:26) at Connection.handlePacket (B:\Node JS\Backend Express\node_modules\mysql2\lib\connection.js:456:32) at PacketParser.onPacket (B:\Node JS\Backend Express\node_modules\mysql2\lib\connection.js:85:12) at PacketParser.executeStart (B:\Node JS\Backend Express\node_modules\mysql2\lib\packet_parser.js:75:16) at Socket.<anonymous> (B:\Node JS\Backend Express\node_modules\mysql2\lib\connection.js:92:25) at Socket.emit (node:events:513:28) at addChunk (node:internal/streams/readable:324:12) at readableAddChunk (node:internal/streams/readable:297:9) at Readable.push (node:internal/streams/readable:234:10) { code: 'ER_TRUNCATED_WRONG_VALUE', errno: 1292, sqlState: '22007', sqlMessage: "Incorrect datetime value: 'Invalid date' for column 'tsdate' at row 1", sql: 'INSERT INTO `time_sheet` (`LOGINID`,`tsdate`,`checkout`,`timeid`,`daytype`) VALUES (?,?,?,DEFAULT,?);', parameters: [ 1, 'Invalid date', '2022-01-17 18:33:00', 'none' ] }, original: Error: Incorrect datetime value: 'Invalid date' for column 'tsdate' at row 1 at Packet.asError (B:\Node JS\Backend Express\node_modules\mysql2\lib\packets\packet.js:728:17) at Execute.execute (B:\Node JS\Backend Express\node_modules\mysql2\lib\commands\command.js:29:26) at Connection.handlePacket (B:\Node JS\Backend Express\node_modules\mysql2\lib\connection.js:456:32) at PacketParser.onPacket (B:\Node JS\Backend Express\node_modules\mysql2\lib\connection.js:85:12) at PacketParser.executeStart (B:\Node JS\Backend Express\node_modules\mysql2\lib\packet_parser.js:75:16) at Socket.<anonymous> (B:\Node JS\Backend Express\node_modules\mysql2\lib\connection.js:92:25) at Socket.emit (node:events:513:28) at addChunk (node:internal/streams/readable:324:12) at readableAddChunk (node:internal/streams/readable:297:9) at Readable.push (node:internal/streams/readable:234:10) { code: 'ER_TRUNCATED_WRONG_VALUE', errno: 1292, sqlState: '22007', sqlMessage: "Incorrect datetime value: 'Invalid date' for column 'tsdate' at row 1", sql: 'INSERT INTO `time_sheet` (`LOGINID`,`tsdate`,`checkout`,`timeid`,`daytype`) VALUES (?,?,?,DEFAULT,?);', parameters: [ 1, 'Invalid date', '2022-01-17 18:33:00', 'none' ] }, sql: 'INSERT INTO `time_sheet` (`LOGINID`,`tsdate`,`checkout`,`timeid`,`daytype`) VALUES (?,?,?,DEFAULT,?);', parameters: [ 1, 'Invalid date', '2022-01-17 18:33:00', 'none' ] }

我想保留 sqlMessage 行sqlMessage: "Incorrect datetime value: 'Invalid date' for column 'tsdate' at row 1",

用於錯誤處理

async function createtimesheet (req) {
    console.log("servies");
    console.log(req);
    let error ;
     data = await time_sheet.create(req).catch(err =>{
    error = err;
         })
    
    if (error) {
    console.log("has error");
    console.log(error);  ////undefined 
    return error
    } else {
    console.log("has no error");
    return data
    }

  }

error.sqlMessage 也不起作用。 我想記錄 SQL 消息的值。

您可以使用

error.message

獲取簡短的錯誤消息並使用

error.original

了解更多詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM