узел js heroku взаимодействует с postgresql

1

Я пытаюсь добавить базу данных PostgreSQL в свой существующий проект nodejs на heroku. У меня возникли проблемы с доступом к локальной версии базы данных вообще, а также возникли проблемы с записью в базу данных heroku. Вот часть кода, который я пробовал:

const { Client } = require('pg');

const client = new Client({
  connectionString: process.env.DATABASE_URL,
  ssl: true,
});

client.connect();

// client
let qu = 'SELECT table_schema,table_name FROM information_schema.tables;';
//qu = 'CREATE TABLE test (name varchar(40));';
//qu = 'SELECT * FROM test;';
// qu = 'INSERT INTO test name VALUES("testasdf");';
// qu = 'CREATE DATABASE X

client.query(qu, (err, res) => {
  //console.log("trying");
  if (err) throw err;
  for (let row of res.rows) {
    console.log(JSON.stringify(row));
  }
  client.end();
});

Я пробовал следовать инструкциям здесь: https://devcenter.heroku.com/articles/heroku-postgresql

но я не могу получить доступ к локальной базе данных или сделать что-либо с удаленным.

Вот локальное сообщение об ошибке:

(node: 8402) UnhandledPromiseRejectionWarning: ошибка: аутентификация пароля не была выполнена для пользователя "..." в Connection.parseE(.../theland/node_modules/pg/lib/connection.js: 553: 11) в Connection.parseMessage(.../theland/node_modules/pg/lib/connection.js:378:19) в TLSSocket. (.../theland/node_modules/pg/lib/connection.js: 119: 22) в emitOne (events.js: 116: 13) в TLSSocket.emit(events.js: 211: 7) в addChunk (_stream_readable. js: 263: 12) в readableAddChunk (_stream_readable.js: 250: 11) в TLSSocket.Readable.push(_stream_readable.js: 208: 10) в TLSWrap.onread(net.js: 597: 20) (узел: 8402) UnhandledPromiseRejectionWarning: отказ от необработанного обещания. Эта ошибка возникла либо путем броска внутри async-функции без блока catch, либо путем отказа от обещания, которое не обрабатывалось с помощью.catch(). (идентификатор отклонения: 1) (узел: 8402) [DEP0018] Устаревание. Предупреждение. Отклонения от необработанных обещаний устарели. В будущем обещание отклонения, которое не обрабатывается, приведет к завершению процесса Node.js с ненулевым кодом выхода.

Я не знаю, как создать таблицу на удаленном.

Я работаю на Linux с узлом-v = 8.11.2 npm-v = 6.1.0 pg: ^ 7.4.3

Я тоже использую psql, нет GUI.

Спасибо за помощь.

EDIT--- Где я должен добавить аутентификацию? Мне нужно снять скрипт с github, если я добавлю аутентификацию и не хочу, чтобы люди могли быть админами для моей базы данных?

Теги:
heroku
psql

1 ответ

0
  1. аутентификация паролей для пользователя "..."

Очевидно, что вы не используете для пользователя правильный пароль. Положительная новость заключается в том, что сервер отвечает на ваш запрос.

  1. Отказ от необработанного обещания

Произошла ошибка, вероятно, брошенная здесь:

if (err) throw err;

Вы, кажется, не поймаете его где-то, вы только бросаете его. Попробуйте поместить его в блок try-catch, например, например,

function queryDatabase() {
  try {
    const client = new Client({
      connectionString: process.env.DATABASE_URL,
      ssl: true,
    });

    client.connect();

    // client
    let qu = 'SELECT table_schema,table_name FROM information_schema.tables;';
    //qu = 'CREATE TABLE test (name varchar(40));';
    //qu = 'SELECT * FROM test;';
    // qu = 'INSERT INTO test name VALUES("testasdf");';
    // qu = 'CREATE DATABASE X

    client.query(qu, (err, res) => {
      //console.log("trying");
      if (err) throw err;
      for (let row of res.rows) {
        console.log(JSON.stringify(row));
      }
      client.end();
    });
  } catch (error) {
    // if you need further help, remember to provide this error here.
    console.log(error);
  }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню