-2

我想创建一个简单且安全的 HTTP Web 服务器。

我使用了在“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 有什么优势?

非常感谢您!

(信息:我指望稍后将此代码与“Handlebars”、“Socket.io”和“Mongoose / MongoDB”结合使用。)

4

1 回答 1

-3

你绝对应该只使用快递。

否则,您将浪费大量时间重新发明轮子。

于 2013-01-09T21:34:09.943 回答