所有分类
  • 所有分类
  • 后端开发
如何使用 Node.js 实现删除接口并解析 URL 获取参数

如何使用 Node.js 实现删除接口并解析 URL 获取参数

实现删除接口首先,我们需要定义一个删除接口的URL。在删除逻辑中,我们需要使用Node.js的fs模块读取用户数据,并将删除后的数据重新写入文件中。测试删除接口DELETE请求,将ID为1的用户从users.json文件中删除。本文介绍了如

学习用Node.JS开发RESTful API的时候,我发现删数据比较头疼。试了好几次之后,终于学会怎么用HTTP的DELETE方法删库里的信息!今儿个特地来把经验分享给大家哈~

理解DELETE方法的含义

删除东西其实超简单!告诉我你不想再看到哪部分内容,我就能帮你马上去掉!在使用 REST 方式提供 API 的情况下,尤其适合使用 DELETE 这种方法。比如想要清除某个用户信息或者某片文章的话,就得靠它了!

DELETE命令,得告诉服务器我们想删哪个文件。比如,想把某位用户删了,就给服务器发个这样的命令:DELETE /users/1,其中的1就是那个用户唯一的识别码。

别急,服务器接下来要做的就是,找到 URL 中标记所在的那部分资源,然后把它们从资源堆里扔出去。这样就 OK 了吗?当然不,还要告诉你 “搞定了!什么都没有~”,所以会给你回复一个204 No Content状态码。

使用Node.js监听DELETE请求

node.js里有种叫http模块的东西,它能处理所有你客户发来的HTTP请求,当然也包括DELETE。如果他们给你发了DELETE请求,只用使用那个request回调就搞定了~

const http = require('http');
const url = require('url');
const server = http.createServer((req, res) => {
  const reqUrl = url.parse(req.url, true);
  const id = reqUrl.pathname.split('/')[2];
  if (req.method === 'DELETE' && reqUrl.pathname === `/users/${id}`) {
    // 处理删除请求
  } else {
    res.statusCode = 404;
    res.end('Not Found');
  }
});
server.listen(3000, () => {
  console.log('Server running at http://localhost:3000/');
});

搞定DELETE请求特简单,只要看看回调函数里是不是用了DELETE方法,再瞅瞅URL里面有没有要删的资源标识符就行!

简单来说,如果你用DELETE命令删除了一个有特定资源号码的网址,那就代表这个资源已经被删掉了!不过要是操作失败了,网站也会告诉你怎么回事。

解析URL获取参数

找地方删除,其实很容易。用Node.js里的url模块,就能把网址转化成对象。之后,抓取其中的参数,就能顺利搞定了!

听说过parse这个神奇的函数没?它能把网址转换成一份完整的信息清单,包括可读懂的链接类型(如http)和网站地址。然后只要找到里面的pathname属性,那不就是网址对应的路径。最后几步就好说了,用正则表达式或者其他套路来找出链接里的各种参数即可。

如果你给我个网址像这样的:/users/1,那我就能根据这种方法找出数字”1″了!

javascript
const url = require('url');
直接用 url 解析工具,就能把请求的网址给解析出来。
{
  "1": {
    "name": "张三",
    "age": 20,
    "email": "zhangsan@example.com"
  },
  "2": {
    "name": "李四",
    "age": 30,
    "email": "lisi@example.com"
  },
  "3": {
    "name": "王五",
    "age": 25,
    "email": "wangwu@example.com"
  }
}

我们先把网址里的用户名砍出来,用户名在地址栏第三个位置。

这个程序就是把你提交的网址变成别的东东(借助url.parse),接着再用到split功能,就能看到你要的那个部分 “点”:id !

读取和写入数据文件

要把用戶info刪了,先要看清楚他們的信息,利用fs模塊的readFileSync。刪掉後,再將修改後的資料存回users.json就好。這樣,大夥的資訊就都在這裡了!

搞定数据文档后,咱们开始用JavaScript删除!选中你想删掉的人,直接在JSON里把它丢弃就行。记住喔,我会使用fs模块中的writeFileSync方法,来更新并保存已修改的JSON对象到users.json文件去~

哦也!删掉的东西找回来啦!这个过程中,再加上点有趣的功能,比如看看用户有没有违规行为,或者打印出操作记录什么的。

测试DELETE接口

const http = require('http');
const url = require('url');
const fs = require('fs');
const server = http.createServer((req, res) => {
  const reqUrl = url.parse(req.url, true);
  const id = reqUrl.pathname.split('/')[2];
  if (req.method === 'DELETE' && reqUrl.pathname === `/users/${id}`) {
    // 读取用户数据
    const users = JSON.parse(fs.readFileSync('./users.json'));
    // 删除用户
    delete users[id];
    // 写入修改后的用户数据
    fs.writeFileSync('./users.json', JSON.stringify(users));
    // 返回删除成功提示
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain');
    res.end(`User ${id} deleted successfully`);
  } else {
    res.statusCode = 404;
    res.end('Not Found');
  }
});
server.listen(3000, () => {
  console.log('Server running at http://localhost:3000/');
});

打算试试我们的删除功能好用不?那就用curl命令模拟个HTTP DELETE请求?比如说要删掉名叫1的用户得这么操作:

“`bash

直接点开浏览器,输入“http://localhost:3000/users/1”,然后按“Delete”就能搞定了!通俗来讲,就是删掉用户资料表里面的第一条记录!

这句话就是要告诉你怎么通过HTTP DELETE方式找到并删掉编号为1的用户。稳妥点说,按照预定,成功执行后的状态码会显示成204!

创建HTTP服务器

直说了,Node.js里的http模块能帮我们搞定HTTP服务器。要是有人发了HTTP DELETE请求,那就在request事件处理器里把对应的内容删掉就行!

创建HTTP服务器的基本步骤如下:

1. 引入http模块。

2. 创建一个http.Server实例。

curl -X DELETE http://localhost:3000/users/1

3. 为服务器实例添加request事件的监听器。

4. 在request事件的回调函数中处理客户端的请求。

只需说声「发送」,就可以和服务器自由聊起来!然后设好接收消息的端口就好咯~

搞定HTTP Delete请求服务器,就是这么简单!

总结与反思

原文链接:https://www.icz.com/technicalinformation/web/2024/06/17668.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?