What is http?
The 'http' npm package is a core Node.js module that provides utilities for creating HTTP servers and clients. It allows developers to build web servers and make HTTP requests.
What are http's main functionalities?
Creating an HTTP Server
This feature allows you to create an HTTP server that listens on a specified port and hostname. The server responds with 'Hello, World!' to any incoming request.
const http = require('http');
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello, World!');
});
server.listen(3000, '127.0.0.1', () => {
console.log('Server running at http://127.0.0.1:3000/');
});
Making an HTTP GET Request
This feature allows you to make an HTTP GET request to a specified URL. The response data is collected and logged to the console.
const http = require('http');
http.get('http://www.example.com', (res) => {
let data = '';
res.on('data', (chunk) => {
data += chunk;
});
res.on('end', () => {
console.log(data);
});
}).on('error', (e) => {
console.error(`Got error: ${e.message}`);
});
Handling HTTP POST Requests
This feature allows you to handle HTTP POST requests. The server collects the POST data and responds with it.
const http = require('http');
const server = http.createServer((req, res) => {
if (req.method === 'POST') {
let body = '';
req.on('data', chunk => {
body += chunk.toString();
});
req.on('end', () => {
res.end('Received POST data: ' + body);
});
} else {
res.statusCode = 405;
res.end('Method Not Allowed');
}
});
server.listen(3000, '127.0.0.1', () => {
console.log('Server running at http://127.0.0.1:3000/');
});
Other packages similar to http
express
Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications. It is built on top of the 'http' module and simplifies the process of building web servers and APIs.
axios
Axios is a promise-based HTTP client for the browser and Node.js. It provides a simple and easy-to-use API for making HTTP requests and handling responses. Unlike the 'http' module, Axios supports features like request and response interception, automatic JSON transformation, and more.
request
Request is a simplified HTTP client for Node.js, designed to be easy to use. It abstracts the complexities of the 'http' module and provides a more user-friendly API for making HTTP requests. Note that 'request' has been deprecated, but it is still widely used in many projects.