var path = require('path') var httpProxy = require('http-proxy') var express = require('express') var app = express() var rootPath = path.join(__dirname, './'); var port = 8060; // 指定服务端口 var filterFields = ['/api']; // 过滤请求路径关键字 type: array var proxy = httpProxy.createProxyServer({ // target: 'http://sit.behuntergatherer.com/', //代理 接口地址 target: 'http://uat.behuntergatherer.com/', //代理 接口地址 // target: 'http://10.36.9.161:8080' // target: 'http://10.36.8.36:8083', changeOrigin: true, // 下面的设置用于https // ssl: { // key: fs.readFileSync('server_decrypt.key', 'utf8'), // cert: fs.readFileSync('server.crt', 'utf8') // }, // secure: false }); proxy.on('error', function(err, req, res){ res.writeHead(500, { 'content-type': 'text/plain' }); console.log(err); res.end('Something went wrong. And we are reporting a custom error message.'); }); // 处理静态资源 app.use(express.static(rootPath)); // 只对 filterFields 数组元素有的字段请求,挂载此中间件 filterFields.forEach(function (field) { app.use(field, function (req, res, next) { var pathname = req.url; req.url = field + pathname; proxy.web(req, res); }) }); app.listen(port); console.log("Server runing at : localhost:" + port + "/example/example.html");