0

I'm totally new to relational databases and I'm trying to build a node and express project with postgres using knex.

I'm getting the following error when trying to connect to 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'
}

I understand it's a connection problem, but I'm not sure why I'm getting this. This is my connection code:

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

And then I'm importing the Knex object on the different routes to make queries, like so:

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

})

Full code can be found here: https://github.com/coccagerman/mixr-back

1 Answer 1

5

you are using MySQL port 3306,

PostgresQL uses port 5432

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.