API接口测试(postman、node.js)

前置条件

        Postman测试工具

        Node环境

        Visual Studio Code代码编辑器

说明:在自己练习postman接口测试的时候没有资源,想要通过Node搭建环境,体会整个流程


步骤1:创建Node.js项目

1.在VSCode中,创建新的文件夹,在这里我们命名为:my-api

2.在VSCode中,打开刚才新建创建文件夹的终端


步骤 2: 安装所需的Node.js依赖

1.对项目进行初始化

//-y选项会自动跳过所有提示,使用默认设置
npm init -y

2.安装Express框架,用于创建服务器

npm install express

3.安装body-parser,用于解析请求体

npm install body-parser

3.安装jsonwebtoken,用于生成和验证JWT

npm install jsonwebtoken

步骤3:创建项目文件

在你的项目目录中创建一个名为server.js的文件,代码如下:

server.js

// 引入 Express 框架,用于构建 Web 服务器和处理 HTTP 请求  
const express = require('express');  
  
// 引入 body-parser 中间件,用于解析 HTTP 请求体中的 JSON 数据  
const bodyParser = require('body-parser');  
  
// 引入 jsonwebtoken 库,用于生成和验证 JSON Web Tokens (JWT)  
const jwt = require('jsonwebtoken');  
  
// 引入 bcrypt 库,用于密码的哈希和比较  
const bcrypt = require('bcrypt');  
  
// 创建一个 Express 应用实例  
const app = express();  
  
// 使用 body-parser 中间件来解析 JSON 格式的请求体  
app.use(bodyParser.json());  
  
// 定义一个 POST 路由 '/register',用于处理用户注册请求  
app.post('/register', async (req, res) => {  
  try {  
    // 从请求体中解构出用户名和密码  
    const { username, password } = req.body;  
      
    // 使用 bcrypt 库对用户密码进行哈希处理  
    const hashedPassword = await bcrypt.hash(password, 10);  
      
    // 存储用户信息到数据库(这里只是示例,没有实际调用数据库)  
    // 假设存储成功  
    res.status(201).json({ message: 'User registered successfully' });  
  } catch (error) {  
    // 如果发生错误,返回 500 状态码和错误消息  
    res.status(500).json({ message: 'An error occurred during registration' });  
  }  
});  
  
// 定义一个 POST 路由 '/login',用于处理用户登录请求  
app.post('/login', async (req, res) => {  
  try {  
    // 从请求体中解构出用户名和密码  
    const { username, password } = req.body;  
      
    // 验证用户信息(这里只是示例,没有实际调用数据库)  
    // 假设验证成功  
    const user = { id: 1, username: 'exampleUser' };  
      
    // 使用 jwt 库生成一个包含用户信息的 JWT  
    const token = jwt.sign({ user }, 'secretKey', { expiresIn: '1h' });  
      
    // 返回 JWT 给客户端  
    res.status(200).json({ token });  
  } catch (error) {  
    // 如果验证失败或发生其他错误,返回 401 状态码和错误消息  
    res.status(401).json({ message: 'Invalid credentials' });  
  }  
});  
  
// 定义一个 POST 路由 '/update-password',用于处理修改密码请求  
app.post('/update-password', authenticate, async (req, res) => {  
  try {  
    // 从请求体中解构出用户名和新密码  
    const { username, newPassword } = req.body;  
      
    // 使用 bcrypt 库对新密码进行哈希处理  
    const hashedPassword = await bcrypt.hash(newPassword, 10);  
      
    // 更新密码(这里只是示例,没有实际调用数据库)  
    // 假设更新成功  
    res.status(200).json({ message: 'Password updated successfully' });  
  } catch (error) {  
    // 如果更新密码时发生错误,返回 500 状态码和错误消息  
    res.status(500).json({ message: 'An error occurred during password update' });  
  }  
});  
  
// 定义一个认证中间件函数 authenticate  
function authenticate(req, res, next) {  
  // 从请求头中获取 JWT  
  const token = req.headers.authorization;  
    
  try {  
    // 使用 jwt 库验证 JWT  
    const payload = jwt.verify(token, 'secretKey');  
      
    // 将验证后的用户信息附加到请求对象上,供后续路由使用  
    req.user = payload.user;  
      
    // 调用 next() 函数,将请求传递给下一个中间件或路由处理器  
    next();  
  } catch (error) {  
    // 如果 JWT 验证失败,返回 401 状态码和错误消息  
    res.status(401).json({ message: 'Unauthorized' });  
  }  
}  
  
// 启动服务器并监听指定的端口  
const PORT = process.env.PORT || 3000;  
app.listen(PORT, () => {  
  // 当服务器成功启动后,在控制台输出服务器运行的端口信息  
  console.log(`Server is running on port ${PORT}`);  
});

步骤4:启动服务器

1.在控制台启动server.js

node server.js

2.通过链接地址去浏览器查看以确保开启成功:http://localhost:3000/register


步骤5:使用Postman测试API

一、注册路由测试

1.打开Postman,创建一个新的HTTP POST请求

2.设置请求的URL为你的服务地址加上/register路径:http://localhost:3000/register

3.设置请求体为JSON格式,包含用户名和密码:

   

{
      "username": "newUser",
      "password": "password123"
}

4.选择Send按钮发送请求。如果注册成功,你应该看到一个状态码为201的响应和一个成功消息


二、登录路由测试

1.创建一个新的HTTP POST请求

2.设置URL为http://localhost:3000/login

3.请求体应该是JSON格式,包含用户名和密码:

{
  "username": "newUser",
  "password": "password123"
}

4.发送请求后,如果登录成功,你应该会收到一个状态码为200的响应,包含一个JWT token


三、修改密码路由测试

为了测试修改密码的功能,需要先登录以获取一个有效的JWT token。使用上面的登录请求登录,然后保存返回的token。

1.创建一个新的HTTP POST请求

2.设置URL为http://localhost:3000/update-password

3.在请求头中添加一个Authorization字段,值为Bearer后跟你的JWT token

4.请求体应该是JSON格式,包含用户名和新密码:
 

{
  "username": "newUser",
  "newPassword": "newPassword123"
}

发送请求后,如果密码更新成功,你应该会收到一个状态码为200的响应和一个成功消息。


注意

    在实际的生产环境中,需要将'secretKey'替换为一个安全的密钥,并确保它在服务器和客户端都是保密的。
    为了安全起见,应该使用HTTPS来保护客户端和服务器之间的通信。
    在注册和登录时,应该添加更多的验证和错误处理逻辑,以确保输入的有效性和安全性。
    在修改密码的请求中,应该验证新密码和确认密码是否匹配。

这些步骤应该可以帮助你在Postman中测试你的Node.js API。如果你遇到任何问题,可以根据错误消息进行调试。

   

  • 25
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node.js可以用于搭建前后端分离的应用。前后端分离是一种架构模式,前端负责展示视图,后端负责提供数据,两者通过接口进行交互。 在使用Node.js搭建前后端分离应用时,可以采用以下步骤: 1. 确定前端和后端的职责:前端负责页面展示和用户交互,后端负责数据处理和业务逻辑。前端和后端的职责划分清楚可以提高开发效率和代码的可维护性。 2. 设计接口:前后端之间需要约定数据交互的接口,包括请求的URL、请求方法、请求参数和响应数据格式等。可以使用RESTful API设计原则进行接口设计。 3. 实现前端页面:使用前端框架(如React、Vue等)进行页面开发,根据接口文档调用后端接口获取数据并展示在页面上。 4. 实现后端接口:使用Node.js的框架(如Express、Koa等)搭建后端服务器,根据接口文档编写接口的处理逻辑,包括数据的查询、修改、删除等操作。 5. 进行接口联调:前端在开发过程中可以使用Mock数据或者本地的JSON文件进行开发和调试,后端可以使用Postman等工具测试接口的正确性。在接口联调阶段,前后端进行接口的对接和测试。 6. 部署应用:前端和后端分别打包部署,前端将打包后的静态文件部署到Web服务器上,后端将后台代码部署到应用服务器上。 总结:使用Node.js可以搭建前后端分离的应用,通过约定接口进行数据交互,前端负责页面展示,后端负责数据处理和业务逻辑。在实际开发中,需要明确前后端的职责,设计接口,实现前端页面和后端接口,并进行接口联调和应用部署。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值