Node.js built-in modules are well-known for not being promise-based. This was because these modules were created before promises became popular. Although the promisify
function has been available for some time, Node.js introduced a new promise-based API starting from version 10.
Currently, this new API is only available for the fs
built-in module, and it remains uncertain whether it will be implemented for other native modules in the future.
To utilize this new API, follow these steps:
import * as fs from 'node:fs/promises';
Take note of the node:fs
convention, which is now used to identify native modules.
Now, you can use any of the fs
methods with promises or await:
const posts = await fs.readdir('content');
With these new capabilities, you can leverage the power of async/await and simplify your asynchronous code with the fs
module.