Node.js – 文件系统获取文件types
我需要借助node.js来获取文件的文件types来设置内容types。 我知道我可以很容易地检查文件扩展名,但我也有没有扩展名的文件应该有内容types的image/png
, text/html
ASO。
这是我的代码(我知道它没有多大意义,但这是我需要的基础):
var http = require("http"), fs = require("fs"); http.createServer(function(req, res) { var data = ""; try { /* * Do not use this code! * It's not async and it has a security issue. * The code style is also bad. */ data = fs.readFileSync("/home/path/to/folder" + req.url); var type = "???"; // how to get the file type?? res.writeHead(200, {"Content-Type": type}); } catch(e) { data = "404 Not Found"; res.writeHead(404, {"Content-Type": "text/plain"}); } res.write(data); res.end(); }).listen(7000);
我还没有find在API中的function,所以我会很高兴,如果任何人都可以告诉我如何做到这一点。
看看mmmagic模块 。 这是一个libmagic绑定,似乎正是你想要的。
有一个助手库查找MIMEtypeshttps://github.com/broofa/node-mime
var mime = require('mime'); mime.lookup('/path/to/file.txt'); // => 'text/plain'
但它仍然使用扩展名查找
你应该看看命令行工具file
(Linux)。 它试图根据文件的前几个字节猜测文件types。 您可以使用child_process.spawn
从节点内运行它。
你想要查找MIMEtypes,幸好节点有一个方便的库,只是为了:
https://github.com/bentomas/node-mime#readme
编辑:
你应该看看一个静态的资产服务器,而不是自己设置这些东西。 你可以使用express来做到这一点,或者有很多静态文件模块,例如欣喜若狂 。 另一方面,你应该使用nginx来提供静态文件。
- TypeOrm – OneToOne连接更新尝试删除相关logging
- Node.js SyntaxError:ANTLR4 JavaScript Lexer中的意外标识符“boolean”
- node.js中的头文件 – 套接口io资源解释为脚本,但是以MIMEtypes传递text / plain:
- Typescript和Node js得到“不是函数错误”
- 在全新的快递项目doctype 5`上出现错误,您现在必须使用`doctype html`
- 将64Bit Double转换为32Bit浮点Node.Js
- 与打字稿`toArray`方法不工作的mongodb
- JS – 如何将所有键转换为其值(从对象)
- 解决 – 如何使用内容types:应用程序/ JSON,与节点JS上的请求+ restfulapi