美文网首页
nodejs反向代理无法转发文件解决方法

nodejs反向代理无法转发文件解决方法

作者: yourdream_21a7 | 来源:发表于2017-05-15 00:33 被阅读0次

    最近接触的一个小项目,需要文件管理功能,项目本身已经用express和express-http-proxy搭了个反向代理,使用bodyParser之类的middleware,用来解析api请求参数。
    代码如下:

    const app = express();
    const proxy = require('express-http-proxy');
    const bodyParser = require('body-parser');
    app.use(bodyParser.urlencoded({extended: false}));
    ### 下面Proxyconfig自定义
    app.use('/proxy', proxy(Proxyconfig));
    

    现需要新增一个文件上传功能,现有代码运行起来发现文件无法转发。进行req和body的console是没有发现files的值
    后看了一天文档,发现只要更改一下解析请求的配置就可以了
    代码如下:

    <!-- 判断是否为multipart  -->
    const isMulti = req => req.headers['content-type'] && req.headers['content-type'].indexOf('multipart') > -1;
    <!-- 是否使用bodyParser进行解析 -->
    <!-- 经过bodyParser解析后 一些key value会被忽略掉,包括files-->
    <!--不经过解析就可以进行文件转发-->
    const middle = () => (req, res, next) => {
        if(isMulti(req)) {
            return next();
        }
        return bodyParser.urlencoded({extended: false})(req, res, next);
    }
    // app.use('/proxy', proxy(Proxyconfig)); 
    app.use('/proxy', middle(), (req, res, next) => {
            ###do something....
    });
    

    相关文章

      网友评论

          本文标题:nodejs反向代理无法转发文件解决方法

          本文链接:https://www.haomeiwen.com/subject/iyycxxtx.html