Node: fs.writeFileSync(path) literaly writes "undefined" to the file

Created on 19 Dec 2019  路  2Comments  路  Source: nodejs/node

  • Version: v13.3.0
  • Platform: Linux pc 5.3.15-1-MANJARO #1 SMP PREEMPT Thu Dec 5 11:01:29 UTC 2019 x86_64 GNU/Linux
  • Subsystem: fs

When executing:

require('fs').writeFileSync('/tmp/empty-file');

It creates a file containing "undefined" string:

% hexdump -C /tmp/empty-file
00000000  75 6e 64 65 66 69 6e 65  64                       |undefined|
00000009

This is unexpected behavior as I just wanted to create an empty file. I expect it to either write an empty file or throw but in no case have "undefined" written as the file content.

confirmed-bug fs

Most helpful comment

The documentation for writeFileSync() indicates that the second argument is not optional. So undefined is correct in a way, but yeah, that's surprising, and I would expect it to either throw an error or create an empty file instead.

All 2 comments

Perhaps this is what you expected?

require('fs').writeFileSync('/tmp/empty-file', '')

The documentation for writeFileSync() indicates that the second argument is not optional. So undefined is correct in a way, but yeah, that's surprising, and I would expect it to either throw an error or create an empty file instead.

Was this page helpful?
0 / 5 - 0 ratings