在 Node.js 中用于执行 HTTP 请求和响应的不同类型的模块
HTTP 的请求和响应是万维网的主要基本块。在 Node.js 中执行 HTTP 请求和响应的方法有很多。各种开源库也可用于执行任何类型的 HTTP 请求和响应。
HTTP 请求旨在从指定的 URI 检索数据或将数据推送到服务器。在服务器和客户端之间,它作为请求-响应协议工作。客户端可以是网络浏览器,而服务器可以是托管网站的计算机系统上的应用程序。
下面讨论了三种创建不同发布请求的方法:
- 使用 HTTP 模块
- 使用 express.js 框架
- 使用公理模块
HTTP 模块: HTTP 模块是内置模块,无需外部安装命令即可使用。
导入模块:
const http = require("http")
文件名:index.js
Javascript
// Importing http module
const http = require("http")
// Creating http server
const server=http.createServer((req,res) => {
// Handling the request
if(req.url == '/') {
// Sending the response
res.write("This is the server GFG!")
res.statusCode = 200
// Ending the response
res.end()
}
})
// Listening the server
server.listen((3000),() => {
console.log("Server is Running")
})
Javascript
// Requiring module
const express = require("express");
// Creating express app object
const app = express();
// Handling '/' route
app.get("/", (req, res, next) => {
// Sending the response
res.send("unknown request");
})
// Handling '/GFG' route
app.get("/GFG", (req, res, next) => {
// Sending the response
res.send("Getting request of GFG");
})
// Handling '/Hello' route
app.get("/Hello", (req, res, next) => {
// Sending the response
res.send("Getting request of the Hello");
})
// Server setup
app.listen(3000, () => {
console.log("Server is Running");
})
Javascript
// Importing the axios module
const axios = require('axios');
// Data to be sent
const data = {
name: 'geeksforgeeks',
job: 'Content Writer',
topic: 'Node.js'
};
const addUser = async () => {
try {
// Endpoint of resource
var URL = 'https://reqres.in/api/usersdata'
// Making post request
const res = await axios.post(URL, data);
// Printing the response data
console.log('Body: ', res.data);
} catch (err) {
// Printing the error
console.error(err.Message);
}
};
使用以下命令运行index.js文件:
node index.js
输出:
现在打开浏览器并转到http://localhost:3000 ,您可以看到以下输出:
Express.js 框架: Express.js 是一个第三方模块,需要使用 npm install 命令在外部安装。 Express.js 是 Node.js 的强大框架之一。它可以在不同的中间件的帮助下处理不同类型的客户端请求。
安装模块:使用以下命令安装模块:
npm install express.js
文件名:index.js
Javascript
// Requiring module
const express = require("express");
// Creating express app object
const app = express();
// Handling '/' route
app.get("/", (req, res, next) => {
// Sending the response
res.send("unknown request");
})
// Handling '/GFG' route
app.get("/GFG", (req, res, next) => {
// Sending the response
res.send("Getting request of GFG");
})
// Handling '/Hello' route
app.get("/Hello", (req, res, next) => {
// Sending the response
res.send("Getting request of the Hello");
})
// Server setup
app.listen(3000, () => {
console.log("Server is Running");
})
使用以下命令运行index.js文件:
node index.js
输出:
Server is Running
现在打开浏览器并访问http://localhost:3000/GFG ,您可以看到以下输出:
Axios 模块:另一个可以使用的库是Axios 。这是一个流行的 node.js 模块,用于执行 HTTP 请求并支持所有最新的浏览器。它还支持用于执行 POST 请求的 async/await 语法。
安装模块:使用以下命令安装模块:
npm install axios
文件名:index.js
Javascript
// Importing the axios module
const axios = require('axios');
// Data to be sent
const data = {
name: 'geeksforgeeks',
job: 'Content Writer',
topic: 'Node.js'
};
const addUser = async () => {
try {
// Endpoint of resource
var URL = 'https://reqres.in/api/usersdata'
// Making post request
const res = await axios.post(URL, data);
// Printing the response data
console.log('Body: ', res.data);
} catch (err) {
// Printing the error
console.error(err.Message);
}
};
使用以下命令运行index.js文件:
node index.js
输出: