← 返回首页
Nodejs基础教程(十二)
发表时间:2020-12-22 10:56:26
express-http-proxy 处理代理请求

开发过程中经常需要用到 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转发请求