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);