Как разделить данные Postgres на JSON / объект или легко использовать формат для Express - PullRequest
0 голосов
/ 18 декабря 2018

Я использую pg-обещание для облегчения запросов между Express и базой данных Postgres.

Использование pg-обещания any :

db.any('select * from blog')
  .then(function (data) {
    console.log(data);
  })
  .catch(function (error) {
    console.log('ERROR:', error);
  });

В таблице Postgres есть только одна строка, поэтому приведенный выше запрос получает блок данных из Postgres, который при выводе на терминал выглядит следующим образом:

[ { id: 1,
    date: '2018-12-17',
    title: 'Here is a Title',
    article: "Okay, there's not much here yet.",
    img1: null,
    img2: null,
    img3: null,
    keywords: 'news' } ]

В попытке разбитьСкопировав эти данные в пригодные для использования биты, которые я затем смогу присвоить значениям в Express, я попытался использовать JSON.parse() для этих данных.Я действительно не знал, чего ожидать от этого.

db.any('select * from blog')
  .then(function (data) {
    data = JSON.parse(data); // attempting to parse the Postgres data
    console.log(data);
  })

Произошла ошибка:

ERROR: SyntaxError: Unexpected token o in JSON at position 1

Я также пытался вызвать эти данные, как если бы это был объект.

db.any('select * from blog')
  .then(function (data) {
    console.log(data);
    console.log(data.id); // attempting to get just the id from the data
  })

Какой вывод на терминал:

undefined

Как я могу использовать эти данные в среде js, такой как Express?Не уверен, что это что-то меняет, но я пытаюсь использовать Pug для шаблонирования всего интерфейса.

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Запрос на выборку возвращает массив объектов с каждым элементом в массиве, соответствующим строке в таблице (блоге) в вашем случае, и каждому ключу в объекте, соответствующем столбцу таблицы.

Я не являюсьУбедитесь, почему вы пытаетесь выполнить его JSON-анализ, поскольку JSON ожидает объект и не может анализировать массивы.

0 голосов
/ 18 декабря 2018

Попробуйте JSON.parse (JSON.stringify (data));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...