相关疑难解决方法(0)

NodeJS中的基本静态文件服务器

我试图在nodejs中创建一个静态文件服务器,作为理解节点而不是完美服务器的练习.我非常了解Connect和node-static等项目,并且完全打算将这些库用于更多生产就绪的代码,但我也想了解我正在使用的基础知识.考虑到这一点,我编写了一个小型server.js:

var http = require('http'),
    url = require('url'),
    path = require('path'),
    fs = require('fs');
var mimeTypes = {
    "html": "text/html",
    "jpeg": "image/jpeg",
    "jpg": "image/jpeg",
    "png": "image/png",
    "js": "text/javascript",
    "css": "text/css"};

http.createServer(function(req, res) {
    var uri = url.parse(req.url).pathname;
    var filename = path.join(process.cwd(), uri);
    path.exists(filename, function(exists) {
        if(!exists) {
            console.log("not exists: " + filename);
            res.writeHead(200, {'Content-Type': 'text/plain'});
            res.write('404 Not Found\n');
            res.end();
        }
        var mimeType = mimeTypes[path.extname(filename).split(".")[1]];
        res.writeHead(200, mimeType);

        var fileStream = fs.createReadStream(filename);
        fileStream.pipe(res);

    }); //end path.exists
}).listen(1337);
Run Code Online (Sandbox Code Playgroud)

我的问题是双重的

  1. 这是在节点中创建和流式传输基本html等的"正确"方法,还是有更好/更优雅/更健壮的方法?

  2. 节点中的.pipe()基本上只是执行以下操作吗?

.

var …
Run Code Online (Sandbox Code Playgroud)

webserver http node.js

84
推荐指数
3
解决办法
8万
查看次数

标签 统计

http ×1

node.js ×1

webserver ×1