管道API响应-Javascript

时间:2019-03-04 02:00:46

标签: javascript node.js express

早上好,我正在尝试学习如何构建特定的应用程序,但是我需要一些帮助,或者至少需要一些有关我要做什么的文档。

我已经准备好我的node.js / express.js收听并提供我的要求。

下一步是要挣扎的我需要调用一个API,以将该API通过管道传递回响应中。

我想要实现的目标:

我有一个Google表格已经调用了API,但是有时该API失效了,我需要调用第二个。两者的结构不同,因此我试图创建自己的API(基本上是这2个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

那就是我不断得到的错误。

在该示例中,我使用的是Axios,但我也尝试了其他解决方案,但似乎找不到解决方法。

我是所有这些的初学者,我已经在Google上尝试了很多搜索,但是我不知道我要做什么的正确措辞:-/

快速回顾

API1或API2返回他们的响应>我操纵他们的响应>我将响应发送回我自己的应用程序

1 个答案:

答案 0 :(得分:0)

我试图直接传递答复,而不是将其设置为变量。

您必须先在脚本中传递它,然后再发送类似的内容:

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);
    })