Nathan Campos Nathan Campos - 1 year ago 117
Node.js Question

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

I'm trying to read the content of

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

The content of the
was created on

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 Source

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.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download