节点js HTTP请求在第一个请求上返回空,但在第二个请求上返回数据

时间:2018-11-27 11:53:26

标签: node.js

是NODE js的新功能,我创建了一个节点js应用程序,该应用程序带有一个参数以返回json数据,我注意到该请求是第一次发出的,而不是数据被返回,第二个请求将返回数据,我也注意,如果我传递参数A并在以后更改参数B,则返回的数据将是A而不是B的数据,除非我第二次发出请求,然后才能使用B参数返回数据。下面是我的代码

  var http = require('http');
const url = require('url');  

const Scaledrone = require('scaledrone-node');
const drone = new Scaledrone('GJHGJG42346DF');
var mbody='';
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'application/json'});

var roomname = url.parse(req.url, true).query['room'];

const room = drone.subscribe(roomname, {
  historyCount: 60 // ask for the 60 most recent messages from the room's history
});

room.on('history_message', (message)=>{

    if(mbody=='')
    {
        mbody='[';
    mbody+=JSON.stringify(message); 
    }
    else{
    mbody=mbody+','+JSON.stringify(message);    
    }


})
var complm=mbody+']';

if(complm.length>10)
{
res.end(complm)
}
else{
res.end()   
}

mbody='';
}).listen(process.env.PORT);

0 个答案:

没有答案