首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Express发出外部get请求

使用Express发出外部get请求
EN

Stack Overflow用户
提问于 2017-05-04 23:46:54
回答 2查看 20.2K关注 0票数 4

因此,我有以下场景:我有一个私有API密钥,Angular将在XHR请求中显示该密钥。为了解决这个问题,我决定使用Express作为代理并发出服务器端请求。但是,我似乎找不到有关如何发出自己的get请求的文档。

架构:

Angular向/api/external-api发出请求--> Express处理路由,并使用req.body.params中的参数向externalURL发出请求,并从config.apiKey附加API key。下面是模仿我想要实现的东西的伪代码:

代码语言:javascript
复制
router.get('/external-api', (req, res) => {
  externalRestGetRequest(externalURL, req.body.params, config.apiKey)
  res.send({ /* get response here */})
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-22 08:20:48

公认的答案是好的,但如果有人在以后遇到这个问题,让我们记住,从2020年2月起,request现在是deprecated

那么我们能做什么呢?我们可以使用另一个库。我建议使用Axios

安装它并执行如下操作:

代码语言:javascript
复制
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)
票数 6
EN

Stack Overflow用户

发布于 2017-05-05 00:10:40

你已经走到一半了!你需要一些东西来为你提出这个请求。例如npm库request

在你的路线中类似这样的东西

代码语言:javascript
复制
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密钥发出任何类型的请求。但是,需要注意的是,您还需要处理任何错误或错误响应代码。

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43787515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档