What is NodeJS?
-
Definition: NodeJS is an open-source, cross-platform JavaScript runtime environment that allows you to execute JavaScript code outside of a web browser.
-
Purpose: It’s primarily used for server-side scripting, where JavaScript is used to produce dynamic web content before the page is sent to the user's web browser.
-
Key Features:
-
Event-Driven Architecture: NodeJS uses an event-driven, non-blocking I/O model, making it efficient and lightweight.
-
Single-Threaded: Although single-threaded, NodeJS handles concurrent operations using its asynchronous nature and the event loop.
-
Built on V8: NodeJS is built on Google Chrome's V8 JavaScript engine, making it extremely fast in executing JavaScript code.
How Does NodeJS Work in the Background?
Example:
const fs = require('fs');
console.log("Start");
// Reading a file asynchronously
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});
console.log("End");
Copy after login
Output:
Start
End
(contents of example.txt)
Copy after login
Explanation:
- NodeJS continues to execute the code after the fs.readFile() function is called, without waiting for the file to be read. This demonstrates its non-blocking I/O model.
What are Modules in NodeJS?
-
Definition: Modules are blocks of encapsulated code that communicate with an external application based on their related functionality.
-
Types of Modules:
-
Core Modules: Built into NodeJS (e.g., fs, http, path, etc.).
-
Local Modules: Created by users to organize and structure code.
-
Third-Party Modules: Installed via npm (e.g., express, lodash).
Ways of Importing and Exporting Modules in JavaScript and NodeJS
In JavaScript (ES6 Modules):
// Named export
export const add = (a, b) => a + b;
// Default export
export default function subtract(a, b) {
return a - b;
}
Copy after login
// Named import
import { add } from './math.js';
// Default import
import subtract from './math.js';
Copy after login
In NodeJS (CommonJS Modules):
// Using module.exports
module.exports.add = (a, b) => a + b;
// Using exports shorthand
exports.subtract = (a, b) => a - b;
Copy after login
// Importing modules
const math = require('./math.js');
const add = math.add;
const subtract = math.subtract;
Copy after login
What is File Handling in NodeJS?
-
Definition: File handling in NodeJS allows you to work with the file system on your machine, including reading, writing, updating, and deleting files.
Important Functions:
-
Some of the most important fs Module Functions:
-
fs.readFile(): Asynchronously reads the contents of a file.
-
fs.writeFile(): Asynchronously writes data to a file, replacing the file if it already exists.
-
fs.appendFile(): Appends data to a file. If the file does not exist, it creates a new file.
-
fs.unlink(): Deletes a file.
-
fs.rename(): Renames a file.
Example:
const fs = require('fs');
// Writing to a file
fs.writeFile('example.txt', 'Hello, NodeJS!', (err) => {
if (err) throw err;
console.log('File written successfully.');
// Reading the file
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log('File contents:', data);
// Appending to the file
fs.appendFile('example.txt', ' This is an appended text.', (err) => {
if (err) throw err;
console.log('File appended successfully.');
// Renaming the file
fs.rename('example.txt', 'newExample.txt', (err) => {
if (err) throw err;
console.log('File renamed successfully.');
// Deleting the file
fs.unlink('newExample.txt', (err) => {
if (err) throw err;
console.log('File deleted successfully.');
});
});
});
});
});
Copy after login
Output:
File written successfully.
File contents: Hello, NodeJS!
File appended successfully.
File renamed successfully.
File deleted successfully.
Copy after login
How to Build a Server in NodeJS?
-
Using the http Module: The http module is a core module in NodeJS that allows you to create a server that listens for requests on a specific port and sends responses.
Example:
const http = require('http');
// Creating a server
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello, World!\n');
});
// Listening on port 3000
server.listen(3000, '127.0.0.1', () => {
console.log('Server running at http://127.0.0.1:3000/');
});
Copy after login
Output:
Server running at http://127.0.0.1:3000/
Copy after login
-
Explanation: The server responds with "Hello, World!" every time it receives a request. The server listens on localhost (127.0.0.1) at port 3000.
What is an HTTP Module?
-
Definition: The http module in NodeJS provides functionalities to create HTTP servers and clients.
Important Functions?
-
Some of the most important functions of HTTP module are:
-
http.createServer(): Creates an HTTP server that listens to requests and sends responses.
-
req.method: Retrieves the request method (GET, POST, etc.).
-
req.url: Retrieves the URL of the request.
-
res.writeHead(): Sets the status code and headers for the response.
-
res.end(): Signals to the server that all of the response headers and body have been sent.
Example:
const http = require('http');
const server = http.createServer((req, res) => {
if (req.url === '/') {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Welcome to the homepage!\n');
} else if (req.url === '/about') {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Welcome to the about page!\n');
} else {
res.writeHead(404, { 'Content-Type': 'text/plain' });
res.end('404 Not Found\n');
}
});
server.listen(3000, '127.0.0.1', () => {
console.log('Server running at http://127.0.0.1:3000/');
});
Copy after login
Output:
- If you navigate to http://127.0.0.1:3000/, the server will display "Welcome to the homepage!".
- If you navigate to http://127.0.0.1:3000/about, the server will display "Welcome to the about page!".
- If you navigate to any other URL, the server will display "404 Not Found".
The above is the detailed content of Getting Started with Node JS. For more information, please follow other related articles on the PHP Chinese website!