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