我想創建一個簡單而安全的HTTP Web服務器。基本HTTP服務器
我用在這個問題上找到的例子「Basic static file server in NodeJS」和更新/改變了一些地方在這裏和那裏。
下面的代碼:
var http = require('http'),
url = require('url'),
fs = require('fs');
function error404(res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write('404 Not Found\n');
res.end();
}
http.createServer(function(req, res) {
var path = url.parse(req.url).pathname.toLowerCase().split('/');
var file = path[path.length - 1]
var filename = file.split('.');
var extension = filename[filename.length - 1];
if(extension === 'html') {
fs.exists('./client/' + file, function(exists) {
if(!exists) { error404(res); }
else {
res.writeHead(200, {'Content-Type': 'text/html'});
var fileStream = fs.createReadStream('./client/' + file);
fileStream.pipe(res);
return;
}
});
}
else if(extension === 'js') {
fs.exists('./client/js/' + file, function(exists) {
if(!exists) { error404(res); }
else {
res.writeHead(200, {'Content-Type': 'text/javascript'});
var fileStream = fs.createReadStream('./client/js/' + file);
fileStream.pipe(res);
return;
}
});
}
else if(extension === 'css') {
fs.exists('./client/css/' + file, function(exists) {
if(!exists) { error404(res); }
else {
res.writeHead(200, {'Content-Type': 'text/css'});
var fileStream = fs.createReadStream('./client/css/' + file);
fileStream.pipe(res);
return;
}
});
}
else { error404(res); }
}).listen(8080);
現在我有三個問題:
- 1)請問這段代碼創建一個安全的服務器和可靠嗎?
- 2)有什麼可以改進的?
- 3)使用Express.js與「連接」相結合的優點是什麼?
非常感謝你提前!
(信息:我指望使用此代碼後有「把手」,「Socket.io」和「貓鼬/ MongoDB的」組合。)
你應該去那裏http://codereview.stackexchange.com/並在那裏發表你的問題。 –
我知道codereview,但似乎沒有很多人在該站點上使用node.js(33個線程使用該標記)。 –
那麼...如果你想要一個安全和簡單的網絡服務器,使用lighttpd。 ;)它的評估和修改要比你的實現要好得多。 –