Javascript Node.js express请求保持活动状态

Javascript Node.js express请求保持活动状态,javascript,node.js,rest,express,Javascript,Node.js,Rest,Express,我正在使用express开发节点中的RESTAPI。我使用以下命令来获取一个帐户列表,这些帐户临时读取文件中的响应 app.get('/accounts/list', function(req, res){ var filename = basepath + 'accounts-list.xml'; var cb = function(input){send_successful_response(res, input);}; var cb_err = function(i

我正在使用express开发节点中的RESTAPI。我使用以下命令来获取一个帐户列表,这些帐户临时读取文件中的响应

app.get('/accounts/list', function(req, res){
  var filename = basepath 
    + 'accounts-list.xml';
  var cb = function(input){send_successful_response(res, input);};
  var cb_err = function(input){send_error_response(res, input);};
  response_for_file(filename, cb, cb_err);
});
与:

function response_for_file(filename, cb_success, cb_error){
  fs.readFile(filename, 'utf8', function(error, data){
    if (!error) return cb_success(data)
    else return cb_error(error)
  });
}
以及:

当我在Chrome中调用这条路线时,一切看起来都很好。然而,当我从REST控制台调用它时,它似乎还活着。我想知道是否需要任何东西来显示应该终止响应,或者这是预期的行为。

您是否尝试调用res上的end


另外,最好从文件开始,通过管道将其传输到res.

我最终意识到问题在于节点集的访问控制限制。添加以下内容解决了此问题:

app.all('*', function(req, res, next){
    if (!req.get('Origin')) return next();
    res.set('Access-Control-Allow-Origin', '*');
    res.set('Access-Control-Allow-Methods', 'GET, POST');
    res.set('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type');
    res.set('Access-Control-Allow-Max-Age', -1);
    if ('OPTIONS' == req.method) return res.send(200);
    next();
});
app.all('*', function(req, res, next){
    if (!req.get('Origin')) return next();
    res.set('Access-Control-Allow-Origin', '*');
    res.set('Access-Control-Allow-Methods', 'GET, POST');
    res.set('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type');
    res.set('Access-Control-Allow-Max-Age', -1);
    if ('OPTIONS' == req.method) return res.send(200);
    next();
});