DEV Community

Kumar Ayush
Kumar Ayush

Posted on

🔍 Demystifying Node.js Core Modules: A Practical Dive into fs and path

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!'); }); 
Enter fullscreen mode Exit fullscreen mode

📖 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); }); 
Enter fullscreen mode Exit fullscreen mode

➕ Appending Content
js

fs.appendFileSync('example.txt', '\nThis is a new line.'); fs.appendFile('example.txt', '\nAsync line here.', (err) => { if (err) throw err; }); 
Enter fullscreen mode Exit fullscreen mode

🗑️ Deleting Files
js

fs.unlinkSync('example.txt'); fs.unlink('exampleAsync.txt', (err) => { if (err) throw err; console.log('File deleted!'); }); 
Enter fullscreen mode Exit fullscreen mode

🗂️ Directories and Listing Contents
js

// Create folder fs.mkdirSync('myFolder'); // Read current directory const files = fs.readdirSync('.'); console.log(files); 
Enter fullscreen mode Exit fullscreen mode

🧭 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'); 
Enter fullscreen mode Exit fullscreen mode

🧪 Utility Checks
js

path.isAbsolute('/folder/file.txt'); // true path.normalize('folder/../folder2/./file.txt'); // 'folder2/file.txt' 
Enter fullscreen mode Exit fullscreen mode

🤝 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)