解释HTTP请求的不同类型

解释HTTP请求的不同类型

Hypertext Transfer Protocol (HTTP) 定义了多种请求方法,用于描述对某个资源应采取的操作。最常用的HTTP请求方法有 GET、POST、PUT、PATCH和DELETE

让我们了解一下HTTP请求的用例:

  • GET: GET请求从web服务器读取或检索数据。如果成功获取服务器上的数据,则HTTP状态码为 200(OK)
  • POST: POST请求用于向服务器传输数据。如果创建成功,它会产生一个HTTP状态码为 201 的响应。
  • PUT: PUT请求用于修改服务器上的数据。它会将特定位置的所有内容替换为正文负载中的数据。如果没有与请求匹配的资源,则会生成一个新资源。
  • PATCH: PATCH请求与PUT请求相同,唯一的区别是它只修改数据的一部分。
  • DELETE: DELETE请求用于从服务器上删除特定位置的数据。

现在让我们详细介绍每种请求方法。我们使用一个基于 NodeJS服务器MongoDB数据库 的简单应用程序。NodeJS服务器将处理所有请求并做出适当的响应。

项目设置:

步骤1: 创建一个名为 API 的文件夹,并运行以下命令来启动NodeJS应用程序。

npm init -y
JavaScript

步骤2: 使用以下命令安装必要的npm软件包。

npm install express body-parser mongoose nodemon
JavaScript

步骤3: 在您的项目目录下创建一个名为 index.js 的文件。

项目结构: 这是我们的项目目录现在应该显示出来的样子。

解释HTTP请求的不同类型

步骤4: 要求并设置 express app ,使其开始监听请求。我们的服务器设置在 端口3000 上。

const express = require("express"); 
const bodyParser = require("body-parser"); 
  
const app = express(); 
  
app.use(express.json()); 
app.use( 
  bodyParser.urlencoded({ 
    extended: true
  }) 
); 
  
app.listen(3000, () => { 
  console.log("Server started on port 3000"); 
});
JavaScript

步骤5: 在package.json文件中包含以下脚本。这意味着我们可以使用 npm start 来启动我们的服务器,它将使用先前安装的 Nodemon包

package.json

"scripts": { 
    "start": "nodemon index.js"
},
JavaScript

步骤6: 在终端中键入 npm start 以启动服务器。

解释HTTP请求的不同类型

步骤7: 需要引入mongoose包并连接到MongoDB数据库。如果您在本地项目中工作,MongoDB服务器的URL可能是以下形式: mongodb://localhost:27017/数据库名称。 27017是默认端口。

const mongoose = require("mongoose"); 
mongoose 
  .connect("mongodb://localhost:27017/wikiDB", { 
    useNewUrlParser: true, 
  }) 
  .then(() => { 
    console.log("Database connected"); 
  }) 
  .catch((err) => { 
    console.log("Connection failed"); 
  }) 
JavaScript

步骤8: 重新启动服务器,检查数据库是否成功连接。

解释HTTP请求的不同类型

如何发起POST请求?

步骤1: 创建一个 模型 ,以概述我们数据库的结构。我们有一个包含了数据库结构信息的模式。它包含了一个 标题内容 属性。这两个字段都有类型且是必需的。

const articleSchema = { 
  title: { 
    type: String, 
    required: true, 
  }, 
  content: { 
    type: String, 
    required: true, 
  }, 
}; 
  
const Article = mongoose.model( 
  "Article", articleSchema); 
JavaScript

步骤2: 为POST请求创建一个 端点 ,并使用我们刚刚创建的模型将数据体添加到POST。 标题内容 将接受来自 请求体 的标题和内容。此信息通常通过客户端应用程序(如Postman或Insomnia)获取。

制作和处理POST请求:

app.post("/articles", (req, res) => { 
  const newArticle = new Article({ 
    title: req.body.title, 
    content: req.body.content, 
  }); 
  
  newArticle.save((err) => { 
    if (!err) { 
      res.send("Successfully added a new article."); 
    } else { 
      res.send(err); 
    } 
  }); 
});
JavaScript

步骤3: 打开Postman,将数据添加到请求体中, 然后点击发送。

解释HTTP请求的不同类型

步骤4: 检查数据库,您将看到您刚刚创建的记录。

解释HTTP请求的不同类型

进行get请求的创建和处理:

步骤1: 从数据库中获取数据,我们需要使用Mongoose的 Model.find() 方法。

app.get("/getAllarticles", async (req, res) => { 
  try { 
    const article = await Article.find({}); 
    if (article.length != 0) { 
      res.send(article); 
    } else { 
      res.send("No article found"); 
    } 
  } catch (error) { 
    console.log(error); 
  } 
});
JavaScript

步骤2: 使用Postman向服务器发送GET请求。

解释HTTP请求的不同类型

制作和处理补丁请求:

步骤1: 我们将使用mongoose的 findOneAndUpdate() 方法,通过标题找到并更新一个文档。

app.patch("/articles/:articleTitle", (req, res) => { 
  Article.findOneAndUpdate( 
    { title: req.params.articleTitle }, 
    { $set: req.body }, 
    function (err) { 
      if (!err) { 
        res.send("Successfully updated article."); 
      } else { 
        res.send(err); 
      } 
    } 
  ); 
}); 
JavaScript

步骤2: 现在让我们测试一下。提及您想更新的文章的 标题 ,并在正文中添加更新后的内容。最后,点击“发送”。

解释HTTP请求的不同类型

步骤3: 发送GET请求到服务器,检查特定文章是否已更新,您将会发现特定文章的内容已改变。

解释HTTP请求的不同类型

创建和处理删除请求:

步骤1: 为了删除特定的文章,我们将使用mongoose的 deleteOne() 方法。deleteOne()方法首先会通过文章标题查找到相应的文章,然后像PATCH请求的情况一样将其删除。

app.delete("/articles/:articleTitle", (req, res) => { 
  Article.deleteOne({ title: req.params.articleTitle }, function (err) { 
    if (!err) { 
      res.send("Successfully deleted the corresponding article."); 
    } else { 
      res.send(err); 
    } 
  }); 
});
JavaScript

步骤2: 提到您想删除的文章的 标题 并将请求发送到服务器。

解释HTTP请求的不同类型

步骤3: 为了检查特定文章是否被删除,向服务器发送一个GET请求,你会发现该特定文章已从数据库中删除。

解释HTTP请求的不同类型

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册