Provides native promises for all file system methods involving file descriptors (FD), basically manages fs.open
for you.
file descriptor (FD, less frequently fildes)
en.wikipedia.org/wiki/File_descriptor
fildes
always return a new Promise!
const { write } = require('fildes');
write('./path/to/file.txt', 'The quick green fix')
.then(() => console.log('done!'))
.catch(console.error);
- I needed an API that returns Promises
- provides smart defaults i.e. suitable flags for
open
,read
andwrite
, see fildes/issues/1 - creates a directories if flag is
w
,w+
,a
ora+
open
is optional and useful for keeping the fd for multiple operations- uses no magic
- some very popular node modules use
fs.exists()
which is deprecated…
fs.exists()
should not be used to check if a file exists before callingfs.open()
. Doing so introduces a race condition since other processes may change the file's state between the two calls. Instead, user code should callfs.open()
directly and handle the error raised if the file is non-existent.
fs.exists Stability: 0 - Deprecated (Node.js v5.1.0 File System API)
fs.exists('myfile', (exists) => {
if (exists) {
console.error('myfile already exists');
} else {
fs.open('myfile', 'wx', (err, fd) => {
if (err) throw err;
fs.write(fd, 'Hello', callback);
});
}
});
fs.open('myfile', 'wx', (err, fd) => {
if (err) {
if (err.code === 'EEXIST') {
console.error('myfile already exists');
return;
}
throw err;
}
fs.write(fd, 'Hello', callback);
});
const { open, write, close } = require('fildes');
open('myfile', { flag: 'wx' })
.then(fd => {
return write(fd, 'Hello')
.then(() => close(fd));
})
.catch(console.error);
This is the same as:
const { write } = require('fildes');
write('myfile', 'Hello', { flag: 'wx' })
.catch(console.error);
npm i --save fildes
fildes
with support for Node.js 4.x can be found here https://github.com/thisconnect/fildes/tree/v1.x