node.js - Sequelize NodeJS 服务器抛出 "ERR_UNKNOWN_ENCODING"错误

标签 node.js socket.io mariadb sequelize.js

谁能帮我找出问题所在。我收到此错误:

node:internal/streams/writable:296
       throw new ERR_UNKNOWN_ENCODING(encoding);
       ^

 TypeError [ERR_UNKNOWN_ENCODING]: Unknown encoding: <ref *1> Handshake {
   _events: [Object: null prototype],
   _eventsCount: 1,
   _maxListeners: undefined,
   sequenceNo: 1,
   compressSequenceNo: -1,
   resolve: [Function: bound _authSucceedHandler],
   reject: [Function: bound _authFailHandler],
   sending: false,
   _createSecureContext: [Function: bound _createSecureContext],
   _addCommand: [Function: bound _addCommandEnable],
   getSocket: [Function: _getSocket],
   onPacketReceive: [Function: parseHandshakeInit],
   plugin: [Circular *1],
   [Symbol(kCapture)]: false
 }
     at new NodeError (node:internal/errors:259:15)
     at Socket.Writable.write (node:internal/streams/writable:296:13)
     at PacketOutputStream.flushBufferBasic (/var/www/app/node_modules/mariadb/lib/io/packet-output-stream.js:444:17)
     at Object.send (/var/www/app/node_modules/mariadb/lib/cmd/handshake/client-handshake-response.js:118:7)
     at Handshake.parseHandshakeInit (/var/www/app/node_modules/mariadb/lib/cmd/handshake/handshake.js:82:31)
     at PacketInputStream.receivePacketBasic (/var/www/app/node_modules/mariadb/lib/io/packet-input-stream.js:104:9)
     at PacketInputStream.onData (/var/www/app/node_modules/mariadb/lib/io/packet-input-stream.js:169:20)
     at Socket.emit (node:events:327:20)
     at addChunk (node:internal/streams/readable:304:12)
     at readableAddChunk (node:internal/streams/readable:279:9) {
   code: 'ERR_UNKNOWN_ENCODING'
 }

我目前不知道出了什么问题。想通了,问题出在这里:

const sequelize = new Sequelize(process.env.DB_DATABASE, process.env.DB_USER, process.env.DB_PASSWORD, {
    host: process.env.DB_HOST,
    port: process.env.DB_PORT,
    dialect: 'mariadb',
});

sequelize.authenticate()
    .then(() => {
        logger.log('info', 'Connected to database')
    })
    .catch((error) => {
        logger.log('error', 'Failed to connect to database!');
        logger.log('error', JSON.stringify(error));
    })

authenticate 函数中。数据库:mariadb:10.5.7-focal (docker)

最佳答案

之前一切正常,因为我使用的是旧版本的 MariaDB,必须运行 npm update 并且问题自行解决。

关于node.js - Sequelize NodeJS 服务器抛出 "ERR_UNKNOWN_ENCODING"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64750785/

相关文章:

mysql - MariaDB/MySQL 选择查询将 id 的 json 数组替换为连接值

javascript - 使用 shelljs 将 exec stdout 与一些文本进行比较

Node.js 无法识别新模块

javascript - 如何在Nodejs上显示实时服务器日期和时间

mysql - 找到总和最小的索引

MySQL - 计算多个表的相关行数

AngularJS 部署到 Netlify

node.js - Socket.io 配置错误

java - java中的BufferedWriter和socket,write无效

mysql - MySQL数据库中可以存在重复索引吗