Javascript node.js-是否将res.send()移到函数之外?

Javascript node.js-是否将res.send()移到函数之外?,javascript,node.js,Javascript,Node.js,目前我拥有的是: var server = http.createServer(function(req,res){ res.writeHead(200,{'Content-Type': 'text/html; charset=utf-8'}); var oo = require('/test.js'); oo(connection, function (e, result) { res.end(result); }); }).listen(80)

目前我拥有的是:

var server = http.createServer(function(req,res){
    res.writeHead(200,{'Content-Type': 'text/html; charset=utf-8'});
    var oo = require('/test.js');
    oo(connection, function (e, result) {
        res.end(result);
    });
}).listen(80);
我想做的是

var server=http.createServer(function(req,res){
    res.writeHead(200,{'Content-Type': 'text/html; charset=utf-8'});
    var oo = require('/test.js');
    oo(connection, function (e, result) {});
    res.end(result);
}).listen(80);
但这是行不通的

我们的想法是搬家

res.end(result);
正上方

}).listen(80);

我不知道你们为什么要这么做,请阅读,不是最好的文章,-但你们可以找到很多,但我有一个解决方案给你们

在开始之前,请安装:

解决方案:

var Future = require('fibers/future');
var server = http.createServer(function(req,res){
   fut = new Future();
   res.writeHead(200,{'Content-Type': 'text/html; charset=utf-8'});
   var oo = require('/test.js');
   oo(connection, function (e, result) {
      fut.return(result);
   });
   res.end(fut.wait());

}).listen(80);

请阅读。

它不能移到回调函数之外,因为在这种情况下,它将在回调之前执行,我想这会生成一个到
res
的输出。不会发送此结果,因为您以前关闭了
res

为什么要这样做?从外观上看,
oo
是一个异步函数。如果您尝试这样做,响应将在
oo
得到结果之前结束。那么您到底要做什么呢。要从该函数中获得输出,无需执行任何其他操作。第一个代码片段可以正常工作
var Future = require('fibers/future');
var server = http.createServer(function(req,res){
   fut = new Future();
   res.writeHead(200,{'Content-Type': 'text/html; charset=utf-8'});
   var oo = require('/test.js');
   oo(connection, function (e, result) {
      fut.return(result);
   });
   res.end(fut.wait());

}).listen(80);