在本地环境中接收数据,但在meteor js webapp 中不在生产中

问题描述

WebApp.connectHandlers.use('/hello',async (req,res,next) => {
    let data = '';
    await req.on('data',(chunk) => {
        data += chunk;
    });
    console.log("data : ",data)
    const xml_string = '<?xml version="1.0"?><cXML></cXML>`'
    res.writeHead(200,{ 'Content-Type': 'text/xml' });
    res.end(xml_string);
})

我正在使用这种方法获取数据。我在本地环境中按预期获取数据。但是在部署之后,req.on('data') 不会被调用,并且特定 API 的数据是空白的。另一个 API 正在使用相同的代码在生产和本地环境中工作。我在请求中发送 XML 数据

解决方法

通过以下代码修复了这个问题。

Picker.route("/hello",async (params,req,res) => {
let data = ''
req.on('data',Meteor.bindEnvironment((chunk) => {
    data += chunk;
})).on('end',function() {
    console.log("data : ",data)
    const xml_string = '<?xml version="1.0"?><cXML></cXML>`'
    res.writeHead(200,{ 'Content-Type': 'text/xml' });
    res.end(xml_string);
}