开发过程中经常需要用到 nodeJs做转发层处理代理请求,实现调用后端服务接口。使用express配合 express-http-proxy 可以轻松的完成转发。
实现步骤:
1.添加express-http-proxy依赖
"dependencies": {
"body-parser": "^1.19.0",
"cookie-parser": "~1.4.4",
"debug": "~2.6.9",
"ejs": "~2.6.1",
"express": "~4.16.1",
"express-http-proxy": "^1.6.2",
"http-errors": "~1.6.3",
"morgan": "~1.9.1"
}
2.在app.js里创建proxy实例
var express = require('express');
//引入代理模块
var proxy = require('express-http-proxy');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var itemsRouter = require('./routes/items');
// 配置代理 /
let proxyConfig = {
URL: '127.0.0.1',
PORT: '8080'
}
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
//添加json解析,否则无法处理post请求。
//app.use(bodyParser.json());
//app.use(bodyParser.urlencoded({extended: false}));
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({extended: false}));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', proxy('http://'+proxyConfig.URL+':'+proxyConfig.PORT , null));
app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/items', itemsRouter);
...
3.在/routes/users.js里调用后端接口
var express = require('express');
var router = express.Router();
//调用用户登录接口
router.get('/myshopping/users/auth', function(req, res, next) {
res.send('respond with a resource');
});
//调用用户注册接口
router.post('/myshopping/users/',function(req, res, next) {
//res.send('respond with a resource');
});
module.exports = router;
4.使用post测试nodeJs转发请求

