Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Node.js - File System get file type

Node.js - File System get file type

Problem

I need to get the file type of a file with the help of node.js to set the content type. I know I can easily check the file extension but I've also got files without extension which should have the content type image/png, text/html aso.

This is my Code (I know it doesn't make much sense but that's the base I need):

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);

I haven't found a function for that in the API so I would be happy if anyone can tell me how to do it.

Problem courtesy of: noob

Solution

Have a look at the mmmagic module. It is a libmagic binding and seems to do exactly what you want.

Solution courtesy of: ThiefMaster

Discussion

View additional discussion.



This post first appeared on Node.js Recipes, please read the originial post: here

Share the post

Node.js - File System get file type

×

Subscribe to Node.js Recipes

Get updates delivered right to your inbox!

Thank you for your subscription

×