Javascript mime类型node.js express

Javascript mime类型node.js express,javascript,node.js,express,Javascript,Node.js,Express,我将node.js与express一起用于一个特殊的Web服务器。大部分内容实际上并没有涵盖标准Web服务器所做的工作,但有一小部分我需要它像普通Web服务器一样工作,所以读取一个文件,将其内容和适当的mime类型发送到客户端,就这样。当前我的代码如下所示: app.get('/ui/*', function(req, res) { var file = '../M4Editor/data' + req.url; fs.readFile(file, { encoding: "ut

我将node.js与express一起用于一个特殊的Web服务器。大部分内容实际上并没有涵盖标准Web服务器所做的工作,但有一小部分我需要它像普通Web服务器一样工作,所以读取一个文件,将其内容和适当的mime类型发送到客户端,就这样。当前我的代码如下所示:

app.get('/ui/*', function(req, res) {
    var file = '../M4Editor/data' + req.url;
    fs.readFile(file, { encoding: "utf8" }, function(err, data) {
        if(err) {
            res.send(404);
            return;
        }

        res.type(mime.lookup(file));
        res.send(data.toString());
    });    
});
mime.lookup返回正确的结果。我还尝试了res.set('Content-Type',…),res.header(…),使用res.send(新缓冲区(data.toString(),'utf8'))和之前设置的mime类型。无论我在chrome中做什么,它都是文本/html。如果我检查返回的标题,标题中甚至没有内容类型字段

我做错了什么?谢谢你的建议。

我的建议,为什么不使用


它应该为您处理404错误、缓存、mime类型等。

使用
curl-v进行测试http://yourapp/ui/your/path
。上面的代码看起来应该正确设置响应内容类型标题,但有时chrome的工具会掩盖一些可能误导的东西。感谢您的建议,它也没有显示mime类型标题集。但请看我对公认答案的答复。
app.use('/ui', express.static(__dirname + '../M4Editor/data'));