@stdlib/fs-open v0.2.1
Open
Open a file.
Installation
npm install @stdlib/fs-open
Usage
var open = require( '@stdlib/fs-open' );
open( path[, flags[, mode]], clbk )
Asynchronously opens a file.
var closeSync = require( '@stdlib/fs-close' ).sync;
open( __filename, onOpen );
function onOpen( error, fd ) {
if ( error ) {
console.error( error.message );
} else {
closeSync( fd );
}
}
The function has the same default parameter values as fs.open()
.
open.sync( file[, flags[, mode]] )
Synchronously opens a file
.
var closeSync = require( '@stdlib/fs-close' ).sync;
var fd = open.sync( __filename );
if ( fd instanceof Error ) {
console.error( fd.message );
} else {
closeSync( fd );
}
The function has the same default parameters as fs.openSync()
.
Notes
The difference between this API and
fs.openSync()
is thatfs.openSync()
will throw if anerror
is encountered (e.g., if given a non-existentpath
) and this API will return anerror
. Hence, the following anti-patternvar fs = require( 'fs' ); var fpath = '/path/to/file.js'; var fd; // Check for existence to prevent an error being thrown... if ( fs.existsSync( fpath ) ) { fd = fs.readFileSync( fpath ); }
can be replaced by an approach which addresses existence via
error
handling.var open = require( '@stdlib/fs-open' ); var fpath = '/path/to/file.js'; // Explicitly handle the error... var fd = open.sync( fpath ); if ( fd instanceof Error ) { // You choose what to do... console.error( fd.message ); }
Examples
var join = require( 'path' ).join;
var closeSync = require( '@stdlib/fs-close' ).sync;
var open = require( '@stdlib/fs-open' );
/* Sync */
var fd = open.sync( join( __dirname, 'package.json' ), 'r+' );
// returns <number>
if ( fd instanceof Error ) {
console.error( fd.message );
} else {
closeSync( fd );
}
fd = open.sync( 'beepboop' );
// returns <Error>
/* Async */
open( join( __dirname, 'package.json' ), onOpen );
open( 'beepboop', onOpen );
function onOpen( error, fd ) {
if ( error ) {
if ( error.code === 'ENOENT' ) {
console.error( 'File does not exist.' );
} else {
console.error( error.message );
}
} else {
closeSync( fd );
}
}
See Also
@stdlib/fs-close
: close a file descriptor.@stdlib/fs-exists
: test whether a path exists on the filesystem.@stdlib/fs-read-file
: read the entire contents of a file.
Notice
This package is part of stdlib, a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more.
For more information on the project, filing bug reports and feature requests, and guidance on how to develop stdlib, see the main project repository.
Community
License
See LICENSE.
Copyright
Copyright © 2016-2024. The Stdlib Authors.