извлекать данные из json, работающего на node.js - PullRequest
0 голосов
/ 30 ноября 2018

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

и есть ли другой способ получить данные ??

  fetch('http://localhost:3000/show')
     .then(result => {
          console.log(result);
          return result.json();
      });
      .then(data => {
         console.log(data);
      });
      .catch(error => {
          console.log(error);
      });

это http://localhost:3000/show содержит JSONобъекты.он получил данные от мангуста.

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Если ваша конечная точка '/ show' возвращает данные json без каких-либо проблем, то приведенный ниже код должен утешить вас ответом json.

fetch('http://localhost:3000/show')
.then(res => {
     console.log(result);
     return res.json()
)}
.then(json => console.log(json))
.catch(err => console.log(err));
0 голосов
/ 30 ноября 2018

Удаление точек с запятой между каждым вызовом .then.

Обещания используют своего рода "монадный" шаблон: каждый метод в обещании возвращает другое обещание, которое имеет тот же API.Это означает, что вы можете бесконечно связывать методы обещаний.

Итак:

fetch()
.then(/* stuff */)
.then(/* more stuff */)
.catch(/* even more stuff */); // <-- this is the only semicolon

То же самое верно для многих методов Array, поэтому вы часто будете видеть код, подобный этому:

Object.keys( someObj )            // returns an array
.map(/* iterator function */)     // Array.map returns an array
.filter(/* iterator function */)  // Array.filter returns an array
.sort(/* comparator function */); // Array.sort returns an array

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


Если это не поможет, вы можете отправить сообщениеошибка, которую вы получаете.

Я должен добавить, что result.json() будет выдавать, если сервер на http://localhost:3000/show не сможет предоставить HTTP-заголовок Content-Type: application/json.Даже если тело ответа является полностью допустимым JSON, класс HTTPResponse отказывается делать .json(), если сервер не сообщает, что содержимое является json.

Кроме того, если этот код выполняется в браузере, иобслуживается с другого хоста (или порта), вам нужно будет делать CORS.См. https://stackoverflow.com/a/48287868/814463 для возможной помощи.

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