这可能会因为在铁路运营控制器内部运行而变得复杂(还没有进入复合),不要这么认为,不要认为这里有什么铁路干扰。
我有以下内容:
var http = require('follow-redirects').http;
var https = require('follow-redirects').https;
action('index', function (req,res) {
var url = decodeURIComponent(request.query.url);
var resobj;
var stat;
var headers;
http.get(url, function (r) {
stat = r.statusCode;
headers = r.headers;
r.on('data', function (chunk) {
resobj += chunk.toString();
});
r.on('end', responder);
});
function responder(){
response.writeHead(200, {
'Content-Type': headers["content-type"]
})
response.write(resobj);
response.end();
}
});
request.query.url来自铁路,或者来自明确的底层,无论如何它都能正确返回。但是每当我在各种网站上运行时,我都有两个问题
未定义的文本在其他任何内容之前出现,例如在doctype声明之前。
块的结构似乎已关闭,导致浏览器修复html(可能是由'undefined'字符串引起的),这种修复意味着渲染时通常在头部找到的元素最终会出现在体,
关于修复此问题的任何想法 - 如果有人可以告诉我如何执行上面的代码,以便我可以使用其中一个节点phantomjs桥接器获得至少同样好的结果,这将是很好的。
答案 0 :(得分:0)
这个问题大约有一年的历史,但我试图解决类似的问题。节点在流中处理这些响应以保持其足迹相当低。要求Node缓冲它们并尝试连接chucks比需要更多的工作。我发现使用mikeal的请求包是处理响应“body”的最简单方法https://github.com/mikeal/request
var request = require('request');
request('http://www.google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body) // Print the google web page.
}
})