Ответ API трубопровода - JavaScript - PullRequest
0 голосов
/ 04 марта 2019

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

У меня уже есть мой node.js/express.js готов выслушать и послужить тому, что я могу попросить.

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

ЧтоЯ хочу достичь:

У меня есть Google Sheet, который уже вызывает API, но некоторое время этот API не работает, и мне нужно вызвать второй.Оба имеют разную структуру, поэтому я пытаюсь создать свой собственный API (в основном, один из этих двух API), чтобы передать его в свой Google Sheet так, как я этого хочу.

То, чего я достиг, могувызвать API и передать ответ на консоль, но я не смог найти способ передать этот ответ обратно в браузер, например (res.send (response)), обычно он выдает мне некоторые асинхронные ошибки

import 'dotenv/config';
import cors from 'cors';
import express from 'express';
import axios from 'axios';

const app=express();

const https=require("https");

const url="https://jsonplaceholder.typicode.com/todos/1"

app.use(cors());

app.get('/', (req, res) => {
	axios.get(url)
	.then(function(response){
		res.send(response);
	})
	.catch(function(error){
		console.log(error);
	})
});

app.listen(process.env.PORT, () =>
	console.log('App listening on port '+process.env.PORT),
	);

TypeError: Преобразование круговой структуры в JSON

Это ошибка, которую я продолжаю получать.

I'mиспользуя Axios в этом примере, но я пробовал и другое решение, но я не могу найти способ сделать это.

Я новичок во всем этом, я уже пробовал много поиска на Google, ноЯ не знаю правильную формулировку для того, что я собираюсь сделать: - /

Итак, быстрое резюме

API1 или API2 возвращают свой ответ> Я управляю их ответом> Я отправляю ответвернуться к моему собственному заявлению

1 Ответ

0 голосов
/ 05 марта 2019

Я пытался передать ответ прямо, вместо того, чтобы сделать его переменной.

Вы должны перепрошить его внутри скрипта, прежде чем отправить его с чем-то вроде этого:

fetch('https://apiserver.com/api/etc/')
    .then(function (res) {
        var contentType = res.headers.get("content-type");
        if(contentType && contentType.includes("application/json")) {
            return res.json();
        }
        else {
            throw ("server did not reply properly");
        }
    })
    .then(json => res.send(json))
    .catch(function (err) {
        console.log(err);
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...