Nathan Campos Nathan Campos - 4 months ago 11
Node.js Question

Why does Node.js' fs.readFile() return a buffer instead of string?

I'm trying to read the content of

test.txt
(which is on the same folder of the Javascript source) and display it using this code:

var fs = require("fs");

fs.readFile("test.txt", function (err, data) {
if (err) throw err;
console.log(data);
});


The content of the
test.txt
was created on
nano
:


Testing Node.js readFile()


And I'm getting this:

Nathan-Camposs-MacBook-Pro:node_test Nathan$ node main.js
<Buffer 54 65 73 74 69 6e 67 20 4e 6f 64 65 2e 6a 73 20 72 65 61 64 46 69 6c 65 28 29>
Nathan-Camposs-MacBook-Pro:node_test Nathan$

Answer

From the docs:

If no encoding is specified, then the raw buffer is returned.

Which might explain the <Buffer ...>. Specify a valid encoding as your second parameter after the filename.

Comments