因此,我有以下场景:我有一个私有API密钥,Angular将在XHR请求中显示该密钥。为了解决这个问题,我决定使用Express作为代理并发出服务器端请求。但是,我似乎找不到有关如何发出自己的get请求的文档。
架构:
Angular向/api/external-api发出请求--> Express处理路由,并使用req.body.params中的参数向externalURL发出请求,并从config.apiKey附加API key。下面是模仿我想要实现的东西的伪代码:
router.get('/external-api', (req, res) => {
externalRestGetRequest(externalURL, req.body.params, config.apiKey)
res.send({ /* get response here */})
}发布于 2020-07-22 08:20:48
公认的答案是好的,但如果有人在以后遇到这个问题,让我们记住,从2020年2月起,request现在是deprecated。
那么我们能做什么呢?我们可以使用另一个库。我建议使用Axios。
安装它并执行如下操作:
const axios = require('axios')
const url = "https://example.com"
const getData = async (url) => {
try {
const response = await axios.get(url)
const data = response.data
console.log(data)
} catch (error) {
console.log(error)
}
}
getData(url)发布于 2017-05-05 00:10:40
你已经走到一半了!你需要一些东西来为你提出这个请求。例如npm库request。
在你的路线中类似这样的东西
var request = require('request');
router.get('/external-api', function(req, res){
request('http://www.google.com', function (error, response, body) {
console.log('error:', error); // Print the error if one occurred and handle it
console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
res.send(body)
});
})这允许您使用所需的任何URL或API密钥发出任何类型的请求。但是,需要注意的是,您还需要处理任何错误或错误响应代码。
https://stackoverflow.com/questions/43787515
复制相似问题