Почему при вызове client.connect () зависает node- postgres (pg)? - PullRequest
0 голосов
/ 13 июля 2020

Недавно мне пришлось обновить версию node.js для моего приложения vue. js (node.js на бэкэнде) с v13.5.0 до v14.5.0. Я переустановил все свои пакеты узлов, обновив те, которые мне нужно было обновить, и теперь приложение зависает при всех вызовах БД. Мы используем pg (node- postgres) для наших вызовов базы данных. Я обновил pg до версии 7.18.2.

Наш код инициализации выглядит следующим образом:

constructor() {
  this.pg = require('pg');
  this.client = null;
  this.initPromise = null;
}

async init() {
  if (!this.initPromise) {
    this.client = new this.pg.Client({
      application_name: 'Back end',
      ssl: {
        rejectUnauthorized: false
      }
    });
    this.initPromise = this.client.connect();
  }
  return this.initPromise;
}

async query(query, params) {
  await this.init();
  return await this.client.query(query, params);
}

Я помещаю журналы консоли вокруг вызова this.init () следующим образом:

console.log('before');
await this.init();
console.log('after');

'после' никогда не распечатывается.

Кто-нибудь знает, почему он зависает теперь, когда я обновил версию своего узла?

Ответы [ 2 ]

1 голос
/ 13 июля 2020

Похоже, pg v.8.3.0 решает эту проблему. Я получил v7.18.2 после запуска npm install pg. Кажется, что не всегда устанавливают последнюю версию. npm install pg@latest делает свое дело.

0 голосов
/ 26 августа 2020

Обновление @ gib65 до v.8.3.0 помогло мне тоже ударить головой по await и asyn c. думал, что я снова был новичком ...

...