How to use the Node.js fs module with async/await
Node.js built-in modules famously are not promise-based.
This is for historical reasons, as those modules were created before promises were a thing.
We’ve had promisify for quite some time, but I recently found out Node.js provides a new API that’s promise-based.
I thought it was new but it’s been introduced in Node.js 10 (2018, it’s been a while!).
At the moment it only works for the fs
built-in module.
I’m not sure if this will be ported to other native modules soon.
Here’s how to use it:
import * as fs from 'node:fs/promises';
| Note the node:fs
convention which can be now used to identify native modules
Now you can use any of the fs
methods using promises or await:
const posts = await fs.readdir('content')
→ Get my Node.js Handbook
I wrote 21 books to help you become a better developer:
- HTML Handbook
- Next.js Pages Router Handbook
- Alpine.js Handbook
- HTMX Handbook
- TypeScript Handbook
- React Handbook
- SQL Handbook
- Git Cheat Sheet
- Laravel Handbook
- Express Handbook
- Swift Handbook
- Go Handbook
- PHP Handbook
- Python Handbook
- Linux Commands Handbook
- C Handbook
- JavaScript Handbook
- Svelte Handbook
- CSS Handbook
- Node.js Handbook
- Vue Handbook