将 postgreSQL 与 Knex 连接时出现问题 - assert.fail(`未知消息代码:${code.toString(16)}`)

Problem connecting postgreSQL with Knex - assert.fail(`unknown message code: ${code.toString(16)}`)

我对关系数据库完全陌生,我正在尝试使用 knex 使用 postgres 构建节点和表达项目。

我在尝试连接到 postgres 时遇到以下错误:

/home/German/Desktop/ger/code/projects/mixr/mixr-back/node_modules/pg-protocol/src/parser.ts:202
        assert.fail(`unknown message code: ${code.toString(16)}`)
               ^
AssertionError [ERR_ASSERTION]: unknown message code: 5b
    at Parser.handlePacket (/home/German/Desktop/ger/code/projects/mixr/mixr-back/node_modules/pg-protocol/src/parser.ts:202:16)
    at Parser.parse (/home/German/Desktop/ger/code/projects/mixr/mixr-back/node_modules/pg-protocol/src/parser.ts:103:30)
    at Socket.<anonymous> (/home/German/Desktop/ger/code/projects/mixr/mixr-back/node_modules/pg-protocol/src/index.ts:7:48)
    at Socket.emit (node:events:394:28)
    at Socket.emit (node:domain:475:12)
    at addChunk (node:internal/streams/readable:315:12)
    at readableAddChunk (node:internal/streams/readable:289:9)
    at Socket.Readable.push (node:internal/streams/readable:228:10)
    at TCP.onStreamRead (node:internal/stream_base_commons:199:23) {
  generatedMessage: false,
  code: 'ERR_ASSERTION',
  actual: undefined,
  expected: undefined,
  operator: 'fail'
}

我知道这是一个连接问题,但我不确定为什么会收到此消息。 这是我的连接代码:

export const knex = require('knex')({
    client: 'pg',
    connection: {
      host : 'localhost',
      port : 3306,
      user : 'notTheRealUser',
      password : 'notTheRealPassword',
      database : 'pgdb'
    }
})

knex.raw("SELECT 1").then(() => {
    console.log("PostgreSQL connected")
})
.catch((e: Error) => {
    console.log("PostgreSQL not connected")
    console.error(e)
})

然后我在不同的路由上导入 Knex 对象以进行查询,如下所示:

import { knex } from '../db/db'

router.post('/register', async (req: Request, res: Response) => {

  // Check if the email isn't already taken
  try {
  const emailIsTaken = await knex('users').where({ email: req.body.email })
  if (emailIsTaken) return res.status(500).json('Email already used')

  } catch (err) {
    res.status(500).send(err)
    console.error(err)
  }

})

可在此处找到完整代码:https://github.com/coccagerman/mixr-back

您正在使用 MySQL 端口 3306,

PostgresQL 使用端口 5432