Whether you're just diving into backend development or brushing up on Node.js fundamentals, understanding the built-in fs and path modules is a game changer. These core modules—available without any external installation—lay the groundwork for working efficiently with files and directories across platforms.
🚀 Why Core Modules Matter
Node.js ships with powerful internal tools like fs (file system) and path (path utilities) to help developers:
Read, write, and manage files with ease
Build platform-agnostic paths that work seamlessly across Windows, Linux, and macOS
Let’s explore how these tools fit into your developer toolkit.
📁 Working with the fs Module
The fs module allows both synchronous and asynchronous file operations—ideal for learning and production use respectively.
**✍️ Writing Files
**js
// Synchronous fs.writeFileSync('example.txt', 'Hello, Node.js!'); // Asynchronous fs.writeFile('exampleAsync.txt', 'Async Hello!', (err) => { if (err) throw err; console.log('File created!'); });
📖 Reading Files
js
// Synchronous const data = fs.readFileSync('example.txt', 'utf-8'); console.log(data); // Asynchronous fs.readFile('exampleAsync.txt', 'utf-8', (err, data) => { if (err) throw err; console.log(data); });
➕ Appending Content
js
fs.appendFileSync('example.txt', '\nThis is a new line.'); fs.appendFile('example.txt', '\nAsync line here.', (err) => { if (err) throw err; });
🗑️ Deleting Files
js
fs.unlinkSync('example.txt'); fs.unlink('exampleAsync.txt', (err) => { if (err) throw err; console.log('File deleted!'); });
🗂️ Directories and Listing Contents
js
// Create folder fs.mkdirSync('myFolder'); // Read current directory const files = fs.readdirSync('.'); console.log(files);
🧭 Navigating with the path Module
The path module keeps your file paths robust and cross-platform.
🛠️ Common Utilities
js
const path = require('path'); // Joins segments into a normalized path const filePath = path.join('folder', 'file.txt'); // Gets full absolute path const absolutePath = path.resolve('folder', 'file.txt'); // Extracts file name, dir, and extension const base = path.basename('/users/kumar/index.js'); const dir = path.dirname('/users/kumar/index.js'); const ext = path.extname('index.js');
🧪 Utility Checks
js
path.isAbsolute('/folder/file.txt'); // true path.normalize('folder/../folder2/./file.txt'); // 'folder2/file.txt'
🤝 In Tandem: fs + path
js
const fullPath = path.join(__dirname, 'notes', 'todo.txt');
fs.writeFileSync(fullPath, 'Complete MERN Day 2');
🎯 Wrap-Up
The fs and path modules offer an elegant way to work with files in a platform-safe, efficient manner. Mastering them early on sets the foundation for scalable file operations in real-world applications.
Stay tuned as I continue my MERN stack journey—next up, diving into server-side routing and handling requests using Express.js!!
Top comments (0)