代理服务器

    xiaoxiao2022-07-12  131

    最近想把气象局的实时数据接入单位的系统里,服务器端跨域,不能直接获取数据,在git 上找了一个代理服务器,很好用,推荐给大家,项目名称叫 node-proxy-api-master

    因为中间涉及到参数传递

     

    话不多说,直接看代码

    var express = require('express'); var request = require('superagent')

    var app = express(); var HOST = 'http://data.cma.cn/';   //目标的域名 app.set('port', (process.env.PORT || 5000)); /**  * CORS support.  */

    app.all('*', function (req, res, next) {    if (!req.get('Origin')) return next();   // use "*" here to accept any origin   res.set('Access-Control-Allow-Origin', '*');   res.set('Access-Control-Allow-Methods', 'GET');   res.set('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type');   // res.set('Access-Control-Allow-Max-Age', 3600);   if ('OPTIONS' == req.method) return res.send(200);   next(); }); //subject/27191431/ app.get('*', function (req, res) {  //请求统一在这里响应   var sreq = request.get(HOST + req.originalUrl)    res.header("Content-Type", "application/json; charset=utf-8")   sreq.pipe(res);   sreq.on('end', function (error, res) {     console.log('end');   }); }) app.listen(app.get('port'), function() {   console.log('Node app is running on port', app.get('port')); });

     

     

     

    package.json

    {   "name": "node-express-api",   "version": "1.0.0",   "description": "",   "main": "index.js",   "scripts": {     "start": "node index.js",     "test": "echo \"Error: no test specified\" && exit 1"   },   "author": "superman",   "license": "ISC",   "dependencies": {     "express": "^4.15.2",     "superagent": "^3.5.0"   } }

    最后的效果

    最新回复(0)