【发布时间】:2021-02-09 13:09:10
【问题描述】:
我正在尝试使用 express 创建一个端点,以便我可以从 api 检索数据并在正文中返回 json 数据。
我们从一个返回 json 数据数组的 rest api 获取数据。我想要的是使用 express router.get 来显示前端格式化的 json,这样我就可以访问端点并获取数据。这是我目前所拥有的:
"use strict";
const express = require("express");
const path = require("path");
const serverless = require("serverless-http");
const app = express();
const bodyParser = require("body-parser");
const fetch = require("node-fetch");
var async = require("express-async-await");
const router = express.Router();
router.get("/", async function(req, res, next) {
var requestOptions = {
method: "POST",
headers: {
Accept: "application/json",
Authorization:
"Basic *********",
"Access-Control-Allow-Origin": "*"
},
redirect: "follow"
};
async function getApi() {
try {
const response = fetch(
"http://www.reed.co.uk/api/1.0/search?employerId=*******",
requestOptions
)
.then(res => {
return res.json();
})
.then(json => {
return json;
});
return response;
} catch (error) {
console.log(error);
}
}
const ooIprocessData = async () => {
const data = await getApi();
const ooiResponseData = await data;
return ooiResponseData;
};
ooIprocessData();
res.end;
});
下面的代码在我们访问路由器时返回节点响应中的数据,但它显示了,我需要在前端解决它。
谁能指出我在正确的地方进行这项工作?
谢谢,
【问题讨论】:
-
这是什么?
await data你用它做什么? -
这是reed.co.uk api返回的数据
-
我知道但为什么
await在它前面?这不是一个承诺? -
我很惊讶
res.end;工作了,它是一个函数,所以它是res.end(...)
标签: javascript node.js api express fetch