Nodejs filesystem

From wikinotes
Revision as of 17:47, 30 July 2021 by Will (talk | contribs) (→‎Paths)

filepaths

See https://nodejs.org/api/path.html

const path = require('path');

const filepath = path.resolve('foo.txt')  // relative to abspath
path.dirname(filepath)                    // '/home/you'
path.basename(filepath)                   // 'foo.txt'
path.extname(filepath)                    // '.txt'

// nodejs does not expand ~
// so replace it with the envvar
'~/.zshrc'.replace('~', process.env.HOME)

filesystem

See https://nodejs.org/api/fs.html

There are 2x separate APIs for interacting with files.

const fs = require('fs/promises'); // async/promise based
const fs = require('fs');          // callback based

promise api

const fs = require('fs/promises');

// async/await
await fs.rename('/tmp/foo.txt', '/tmp/bar.txt');

// chained promises (? can I)
fs.rename('/tmp/foo.txt', '/tmp/bar.txt')
    .then()
    .then()

callback api