Node Express 转发 GET 请求

转发GET 和 POST 请求到第三方的 API,实现方式如下:

const express = require('express');
const http = require('http');
const app = express();

app.use((req, res, next) => {
  res.header('Access-Control-Allow-Origin', '*') // 第二个参数表示允许跨域的域名,* 代表所有域名
  res.header('Access-Control-Allow-Methods', 'GET, PUT, POST, OPTIONS') // 允许的 http 请求的方法
  // 允许前台获得的除 Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma 这几张基本响应头之外的响应头
  res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With')
  if (req.method == 'OPTIONS') {
      res.sendStatus(200)
  } else {
      next()
  }
})

//转发get请求
app.get('/api', (req, res) => {
  var path = req.originalUrl;
  http.get({
    hostname: 'www.google.com',
    path: path
  }, function (data) {
    var body = [];
    data.on('data', function (chunk) {
      body.push(chunk);
    });
    data.on('end', function () {
      body = Buffer.concat(body);
      res.send(body.toString())
    });
  });
});

app.listen(8082, () => console.log('开始监听8082端口!'));
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,869评论 1 32
  • AFHTTPRequestOperationManager 网络传输协议UDP、TCP、Http、Socket、X...
    Carden阅读 10,554评论 0 12
  • iOS网络架构讨论梳理整理中。。。 其实如果没有APIManager这一层是没法使用delegate的,毕竟多个单...
    yhtang阅读 10,673评论 1 23
  • 山寒清冽 晨色如洗 佛依然垂眉静坐 什么也不说 我知道佛的忧虑 希望有一天 坐在阳光下 明媚不忧伤 我请求 风儿捎...
    我是沐馨阅读 3,362评论 0 0
  • 是喜新厌旧?与其说是与时俱进! 正是因为觉得拥有这个高大上的理由,顺其自然地就淡忘了曾经的挚友…… 那时的你样子很...
    希希妹阅读 2,839评论 1 10

友情链接更多精彩内容