所以我有以下场景; 我有一个私有API密钥,Angular将在XHR请求中显示.为了解决这个问题,我决定使用Express作为代理并提出服务器端请求.但是,我似乎无法找到有关如何制作自己的get请求的文档.
建筑:
Angular请求/api/external-api- > Express处理路由并向externalURLparams 发出请求req.body.params并附加API密钥config.apiKey.以下是伪模式来模仿我想要完成的事情:
router.get('/external-api', (req, res) => {
externalRestGetRequest(externalURL, req.body.params, config.apiKey)
res.send({ /* get response here */})
}
Run Code Online (Sandbox Code Playgroud)
小智 15
你在中途!您需要一些东西来为您提出要求.比如npm库请求.
在你的路线中
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)
});
})
Run Code Online (Sandbox Code Playgroud)
这允许您使用所需的任何URL或API密钥进行任何类型的请求.但是,请务必注意您还需要处理任何错误或错误的响应代码.
接受的答案很好,但如果以后有人遇到这个问题,请记住,自 2020 年 2 月起,请求现已弃用。
所以,我们能做些什么?我们可以使用另一个库。我会建议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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13742 次 |
| 最近记录: |