node.jssails.js

How to convert file to buffer in node.js?


I am writing a sails.js app. I am writing an API to accept a file and encrypt it.

var file = req.body('myFile');
var fileBuffer = convertToBuffer(file);

How do I convert a file to buffer?


Solution

  • That looks like you've got a string which represents the body of your file.

    You just have to make a new buffer with it.

    var fileBuffer = Buffer.from(file)
    

    If your encoding is NOT utf8 you can specify an alternate encoding as a second optional argument.

    var fileBuffer = Buffer.from(file, 'base64')
    

    If the file is actually on disk, this is even easier, since, by default, the fs.readFile operation returns a buffer.

    fs.readFile(file, function(err, buffer){})
    

    If you're in a real old version of node Buffer.from doesn't exist and you have to use a very memory-unsafe new constructor. Please consider upgrading your node instance to support Buffer.from