從技術上講,這是我第一次嘗試在nodejs中,坦率地說,我不確定我是否正確地做了這件事。我正在創建一個本地服務器,它將流式傳輸遠端服務器的輸出。然而,當我運行我的代碼,我在瀏覽器中輸入一個URL,該計劃失敗,出現以下消息:Nodejs輸出 - 未找到域名
events.js:45
throw arguments[1]; // Unhandled 'error' event
^
Error: ENOTFOUND, Domain name not found
at IOWatcher.callback (dns.js:74:15)
我使用的URL是:127.0.0.1:9000/http://www.yahoo .FR。在瀏覽器中,我收到以下消息:
未收到數據 由於服務器未發送數據,因此無法加載網頁。 以下是一些建議: 稍後重新加載此網頁。 錯誤324(net :: ERR_EMPTY_RESPONSE):服務器關閉連接而不發送任何數據。
任何幫助,非常感謝。 下面是代碼:
var base, dest, node_client,
count = 0,
url = require('url'),
util = require('util'),
http = require('http'),
http_client = require('http'),
request = require('request'),
events = require('events'),
httpProxy = require('./lib/node-http-proxy'),
data_emitter = new events.EventEmitter();
httpProxy.createServer(9000, 'localhost').listen(8000);
http.createServer(function (req, res) {
if(!count)
{
base = url.parse(req.url).pathname;
node_client = http_client.createClient(80, base);
count++;
} else {
dest = req.url.substr(1, req.url.length -1);
}
request = node_client.request("GET", dest, {"host": base});
request.addListener("response", function (response) {
var body = "";
response.addListener("data", function (data) {
body +=data;
});
response.addListener("end", function() {
var out = JSON.parse(body);
if(out.length > 0) {
data_emitter.emit("out", out);
}
});
});
// request.close();
var listener = data_emitter.addListener("data", function(out) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(JSON.stringify(out));
res.close();
});
}).listen(9000);
但由於某些原因,某些圖片未顯示。 – fabricemarcelin 2011-05-03 20:36:36