转发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端口!'));
网友评论