📜  在 Node.js 中用于执行 HTTP 请求和响应的不同类型的模块

📅  最后修改于: 2022-05-13 01:56:21.047000             🧑  作者: Mango

在 Node.js 中用于执行 HTTP 请求和响应的不同类型的模块

HTTP 的请求和响应是万维网的主要基本块。在 Node.js 中执行 HTTP 请求和响应的方法有很多。各种开源库也可用于执行任何类型的 HTTP 请求和响应。

HTTP 请求旨在从指定的 URI 检索数据或将数据推送到服务器。在服务器和客户端之间,它作为请求-响应协议工作。客户端可以是网络浏览器,而服务器可以是托管网站的计算机系统上的应用程序。

下面讨论了三种创建不同发布请求的方法:

  1. 使用 HTTP 模块
  2. 使用 express.js 框架
  3. 使用公理模块

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

输出: