Возврат ответа json из node.js во внешний интерфейс. - PullRequest
0 голосов
/ 23 октября 2018

Итак, я пытаюсь получить свой внутренний код и получить ответ json от API, который я запрашиваю на внутреннем сервере.Он возвращает объект, но мой JSON либо похоронен в нем, либо не там.Я могу записать данные в узел, я просто не могу отправить их обратно.Я попытался повторно отправить, res-JSON и Res-End.Я не уверен, где я иду не так.Спасибо за любую помощь!

ответ консоли веб-приложения Ответ {тип: "basic", URL: "http://localhost:3003/father", перенаправлено: false, статус: 200, ok: true,…}

Внешний javascript

  document.querySelector('.sub').addEventListener('click', function (e) {
  e.preventDefault()
  const wordSearched = document.querySelector('.word').value;
  fetch(`/${wordSearched}`)

   .then(function(answer) {
     console.log(answer);
  const number = answer.total_results;
  console.log(number);
  const tag = document.querySelector(".tagg").innerHTML = `The word 
  ${wordSearched} was used ${number} times!`;
  return tag
  })
   .catch(function(error) {
     console.log('? There has been a problem with the fetch operation: ', 
  error.message);
   })});

Внутренний узел.js

    const express = require('express');
    const app = express();
    const morgan = require('morgan');
    const fetch = require('node-fetch');

    app.use(express.static('\public'));
    app.use(morgan('short'));

    app.get('/:wordSearched', (req, res) => {
      let word = req.params.wordSearched;
      console.log(word);
    fetch(`https://api.esv.org/v3/passage/search/?q=${word}`, {
    headers: {
    'Authorization': 'Token kkkdddd88383' // API Token
    }
    })
    .then(function(response) {
      return response.json()
    })
    .then(function(myJson) {
     const number = myJson.total_results;
      console.log(number);
      res.send(myJson) //cant send number??
        })
      .catch(function(error) {
        console.log('? There has been a problem with the fetch operation: ', error.message);
         })
         });

         //local host
        app.listen(3003, () => {
         console.log('server is up on 3003');
            });

1 Ответ

0 голосов
/ 23 октября 2018

Итак, я выяснил свою проблему после прочтения документации по извлечению в https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch. Мне пришлось позвонить:

      .then(function(response) {
  return response.json()
})

И на моем внешнем интерфейсе.Раньше я звонил только на сервер, думая, что это JSON, который я отправлял.Пока я не сделал вызов .json () на каждом конце, я не собирался получить свой ответ до конца.

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