非UTF编码POST请求的Meteor路由

非UTF编码POST请求的Meteor路由,post,meteor,iron-router,body-parser,Post,Meteor,Iron Router,Body Parser,我正在为商家系统实现RESTAPI。该商户系统将支付确认POST请求发送到我的系统,发送到指定的URL,该请求在windows-1251中编码 我尝试了iron router和restivus来处理这个请求,两个都失败了 UnsupportedMediaTypeError: unsupported charset "WINDOWS-1251" at Object.urlencodedParser [as handle] (/home/dev/builds/bundle/programs/serv

我正在为商家系统实现RESTAPI。该商户系统将支付确认POST请求发送到我的系统,发送到指定的URL,该请求在windows-1251中编码

我尝试了iron router和restivus来处理这个请求,两个都失败了

UnsupportedMediaTypeError: unsupported charset "WINDOWS-1251"
at Object.urlencodedParser [as handle] (/home/dev/builds/bundle/programs/server/npm/node_modules/meteor/simple_json-routes/node_modules/connect/node_modules/body-parser/lib/types/urlencoded.js:102:12)
at next (/home/dev/builds/bundle/programs/server/npm/node_modules/meteor/webapp/node_modules/connect/lib/proto.js:174:15)
at middleware (packages/oauth.js:107:7)
at packages/oauth.js:96:5
我当前的iron路由器代码:

Router.route('/api/payments/result/',{where: "server", name: 'payments-result'})
    .post(function () { });

Router.onBeforeAction(function (req, res, next) {
    logger.info('GOT A CONFIRMATION REQUEST');
    logger.info(`request headers are: ${req.rawHeaders}`);
    logger.info('request is: ');
    Object.keys(req.body).forEach(key => {
        let val = req.body[key];
        logger.info(`${key} : ${val}`);
    });

    res.end('hello from the server\n');
},{where: 'server', only: ['payments-result']});
即使在onBeforeAction钩子期间,也不会执行任何日志语句

问题是如何设置正确的请求解码,或者如何避免只接受utf-8编码请求的主体解析器,正如我所发现的那样

更新
Ad hock解决方案是使用nginx将win-1251转换为utf8

Ad hock解决方案是使用nginx将win-1251转换为utf8