A practical Node.js file processing application built using Node.js built-in modules.
The project focuses on working with files, directories, streams, buffers, cryptographic operations, and operating system functionality without relying heavily on external packages.
The main goals of this project are to:
- Practice Node.js core modules
- Work with synchronous and asynchronous file operations
- Process files efficiently using streams
- Work with buffers and binary data
- Perform cryptographic operations
- Manipulate file and directory paths
- Access operating system information
- Understand how Node.js handles file processing internally
- Node.js
- JavaScript
- Node.js Core Modules
- npm
- Git & GitHub
The project uses modules such as:
fsfs/promisespathcryptooshttpstream
nodejs-file-processor/
│
├── assets/
│ └── ...
│
├── server.js
├── package.json
├── package-lock.json
├── .gitignore
└── README.md
Clone the repository:
git clone https://github.com/MIhajloS07/nodejs-file-processor.gitNavigate to the project directory:
cd nodejs-file-processorInstall dependencies:
npm installRun the application:
node server.jsUsing Node.js fs and fs/promises to:
- Read files
- Write files
- Create and manage files
- Work with asynchronous file operations
Using the path module to work with:
- File extensions
- File names
- Directory paths
- Absolute and relative paths
Using streams to process data in chunks instead of loading an entire file into memory at once.
This makes streams useful when working with large files.
Using Buffer to work with binary data and understand how Node.js handles data at a lower level.
Using Node.js crypto functionality for operations such as:
- Hashing
- HMAC
- Encryption
- Decryption
Using the os module to retrieve information about the environment in which the application is running.
This project is part of my practical exploration of the Node.js runtime and its built-in APIs.
Instead of relying entirely on external npm packages, the project intentionally uses Node.js core modules to understand the functionality provided directly by the runtime.
🚧 In development
The project is continuously being expanded with additional file-processing functionality and deeper exploration of Node.js APIs.
Mihajlo Stoiljković