返回顶部
首页 > 资讯 > 精选 >node.js+postman+mongodb如何搭建测试注册接口
  • 942
分享到

node.js+postman+mongodb如何搭建测试注册接口

2023-07-02 08:07:16 942人浏览 泡泡鱼
摘要

这篇文章主要讲解了“node.js+postman+mongodb如何搭建测试注册接口”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“node.js+postman+mongoDB如何搭建测试

这篇文章主要讲解了“node.js+postman+mongodb如何搭建测试注册接口”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“node.js+postman+mongoDB如何搭建测试注册接口”吧!

准备工作

申请一个免费的MonGoDB

https://www.mlab.com注册申请一个500M的MongoDB数据库。登录后手动在创建Databases下的Collections中手动创建一个数据库node_app。

在个人首页点击Connect获取node.js连接MongoDB数据库的字符串

mongodb+srv://<username>:<passWord>@cluster0.ylpaf.mongodb.net/node_app

将其中<username>:<password>修改为自己设定的数据库用户名和密码。

下载安装Postman

Https://www.postman.com/注册一个账号,下载安装Postman agent,即可方便地进行GET/POST/PUT等测试。

mongodb连接串配置

安装mongoose用于连接数据库:

> npm install mongoose> > cd C:\Users\xiaoming\source\repos\node_demo\node_app> mkdir config> cd config> new-item keys.js -type file

编辑keys.js配置连接串:

module.exports = {    mongoURI: "mongodb+srv://<username>:<password>@cluster0.ylpaf.mongodb.net/node_app"}

编辑server.js入口文件:

const express = require("express");const mongoose = require("mongoose");const app = express();const db = require("./config/keys").mongoURI;mongoose.connect(db)        .then(() => console.log("MongoDB connected."))        .catch(err => console.log(err));app.get("/", (req, res) => {    res.send("Hello World!");})const port = process.env.PORT || 5000;app.listen(port, () => {    console.log(`Server running on port ${port}`);})

检查是否能连接到数据库:

> nodemon server.js[nodemon] 2.0.16[nodemon] to restart at any time, enter `rs`[nodemon] watching path(s): *.*[nodemon] watching extensions: js,mjs,JSON[nodemon] starting `node server.js`Server running on port 5000MongoDB connected.

数据库连接正常。

GET请求测试

创建路由文件

C:\Users\xiaoming\source\repos\node_demo\node_app\routes\api\users.js

编辑users.js并添加GET请求:

// login & reGISttrationconst express = require("express");const router = express.Router();router.get("/test", (req,res) => {    res.json({msg:"Login succeeded!"})})module.exports = router;

编辑server.js,导入并使用users.js:

const express = require("express");const mongoose = require("mongoose");const app = express();const users = require("./routes/api/users"); const db = require("./config/keys").mongoURI;mongoose.connect(db)    .then(() => console.log("MongoDB connected."))    .catch(err => console.log(err));// 设置app路由app.get("/", (req, res) => {    res.send("Hello World!");})// 使用usersapp.use("/api/users", users);const port = process.env.PORT || 5000;app.listen(port, () => {    console.log(`Server running on port ${port}`);})

访问

http://localhost:5000/api/users/test

可以看到

{"msg":"Login succeeded!"}

注册接口搭建

创建User数据模型

创建用户数据模型文件

C:\Users\xiaoming\source\repos\node_demo\node_app\models\User.js

编辑User.js创建用户数据模型:

const mongoose = require("mongoose");const Schema = mongoose.Schema;// create ScheMaconst UserSchema = new Schema({    name:{        type: String,        required: true    },    email: {        type: String,        required: true    },    password: {        type: String,        required: true    },    avatar: {        type: String    },    date: {        type: Date,        default: Date.now    },})module.exports = User = mongoose.model("users", UserSchema);

使用body-parser中间件

安装body-parser中间件,可以方便地处理HTTP请求。

> npm install body-parser

编辑server.js使用body-parser:

const express = require("express");const mongoose = require("mongoose");const bodyParser = require("body-parser");const app = express();const users = require("./routes/api/users"); const db = require("./config/keys").mongoURI;app.use(bodyParser.urlencoded({ extended: false }));app.use(bodyParser.json());mongoose.connect(db)    .then(() => console.log("MongoDB connected."))    .catch(err => console.log(err));app.get("/", (req, res) => {    res.send("Hello World!");})app.use("/api/users", users);const port = process.env.PORT || 5000;app.listen(port, () => {    console.log(`Server running on port ${port}`);})

POST请求测试

编辑users.js增加POST请求:

// @login & registtrationconst express = require("express");const router = express.Router();router.get("/test", (req,res) => {    res.json({msg:"Login succeeded!"})})router.post("/register", (req, res) => {    console.log(req.body);})module.exports = router;

POST中暂时只有一个打印请求体的操作。

在Postman中的Workspace中测试:

POST http://localhost:5000/api/users/register

Body选择x-www-fORM-urlencoded,在KEY和VALUE中填入测试内容:

KEY         VALUEemail    harlie@google.com

查看终端输出:

Server running on port 5000
MongoDB connected.
[Object: null prototype] { email: 'harlie@google.com' }

说明成功获取到了req.body。

使用User数据模型

首先安装bcrypt包。bcrypt可以用来加密注册用户的密码,避免在数据库中存储明文密码。在https://www.npmjs.com/上可以查看bcrypt包的用法介绍。

> npm install bcrypt

编辑users.js引入并使用User数据模型:

// @login & registtrationconst express = require("express");const router = express.Router();const bcrypt = require("bcrypt");const User = require("../../models/User.js");router.get("/test", (req,res) => {    res.json({msg:"Login succeeded!"})})router.post("/register", (req, res) => {    //console.log(req.body);    // check if email already exists    User.findOne({ email: req.body.email })        .then((user) => {            if (user) {                return res.status(400).json({ email: "邮箱已被注册!" })            } else {                const newUser = new User({                    name: req.body.name,                    email: req.body.email,                    password: req.body.password                })                // encrypt newUser password                bcrypt.genSalt(10, function (err, salt) {                    bcrypt.hash(newUser.password, salt, (err, hash) => {                        if (err) throw err;                        newUser.password = hash;                        newUser.save()                            .then(user => res.json(user))                            .catch(err => console.log(err));                    });                });            }        })})module.exports = router;

在Postman中的Workspace中测试POST http://localhost:5000/api/users/register。Body选择x-www-form-urlencoded,在KEY和VALUE中填入测试内容:

email     godfrey@eldenring.comname      godfreypassword  123456

查看测试输出

{    "name": "godfrey",    "email": "godfrey@eldenring.com",    "password": "$2b$10$hoGzFeIdZyCwEotsYhxEheoGNOCE4QnYYh/WkKoGkuPT0xZI9H10C",    "_id": "62a4482c00990937d819ea6d",    "date": "2022-06-11T07:45:48.437Z",    "__v": 0}

打开mongodb,在DATABASES下的node_app中查看,会发现多出了一个users的Collection,其中刚好存储了上面我们刚通过POST请求插入的一条数据。

使用gravatar处理头像

在https://www.npmjs.com/package/gravatar中查看gravatar的使用方法。

安装gravatar

> npm i gravatar

编辑users.js增加注册头像(avatar)处理:

// @login & registtrationconst express = require("express");const router = express.Router();const bcrypt = require("bcrypt");const gravatar = require("gravatar");const User = require("../../models/User.js");router.get("/test", (req,res) => {    res.json({msg:"Login succeeded!"})})router.post("/register", (req, res) => {    //console.log(req.body);    // check if email already exists    User.findOne({ email: req.body.email })        .then((user) => {            if (user) {                return res.status(400).json({ email: "Email already registered!" })            } else {                const avatar = gravatar.url(req.body.email, { s: '200', r: 'pg', d: 'mm' });                const newUser = new User({                    name: req.body.name,                    email: req.body.email,                    avatar,                    password: req.body.password                })                // encrypt newUser password                bcrypt.genSalt(10, function (err, salt) {                    bcrypt.hash(newUser.password, salt, (err, hash) => {                        if (err) throw err;                        newUser.password = hash;                        newUser.save()                            .then(user => res.json(user))                            .catch(err => console.log(err));                    });                });            }        })})module.exports = router;

在Postman中的Workspace中测试POST http://localhost:5000/api/users/register,Body选择x-www-form-urlencoded。

在KEY和VALUE中填入测试内容:

email     godfrey@eldenring.comname      godfreypassword  123456

测试会返回报错

{    "email": "Email already registered!"}

在KEY和VALUE中填入测试内容:

email      mohg@eldenring.comname       mohgpassword   123456

测试返回

{    "name": "mohg",    "email": "mohg@eldenring.com",    "password": "$2b$10$uSV2tmA5jH6veLTz1Lt5g.iD5QKtbJFXwGsJilDMxIqw7dZefpDz.",    "avatar": "//www.gravatar.com/avatar/c5515cb5392d5e8a91b6e34a11120ff1?s=200&r=pg&d=mm",    "_id": "62a44f12d2c5293f0b8e9c2b",    "date": "2022-06-11T08:15:14.410Z",    "__v": 0}

在浏览器中打开

感谢各位的阅读,以上就是“node.js+postman+mongodb如何搭建测试注册接口”的内容了,经过本文的学习后,相信大家对node.js+postman+mongodb如何搭建测试注册接口这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: node.js+postman+mongodb如何搭建测试注册接口

本文链接: https://lsjlt.com/news/340760.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • node.js+postman+mongodb如何搭建测试注册接口
    这篇文章主要讲解了“node.js+postman+mongodb如何搭建测试注册接口”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“node.js+postman+mongodb如何搭建测试...
    99+
    2023-07-02
  • node.js+postman+mongodb搭建测试注册接口的实现
    目录准备工作下载安装Postmanmongodb连接串配置GET请求测试注册接口搭建创建User数据模型使用body-parser中间件POST请求测试使用User数据模型使用gra...
    99+
    2024-04-02
  • 如何进行Postman自动化接口测试
    如何进行Postman自动化接口测试,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。背景描述有一个项目要使用postman进行接口测试,接口所需参数有:appid: 应用标识;s...
    99+
    2023-06-21
  • 如何用Postman做接口自动化测试
    前言什么是自动化测试把人对软件的测试行为转化为由机器执行测试行为的一种实践。例如GUI自动化测试,模拟人去操作软件界面,把人从简单重复的劳动中解放出来本质是用代码去测试另一段代码,属于一种软件开发工作,已经开发完成的用例还必须随着被测试对象...
    99+
    2023-06-04
  • 如何使用Postman和SoapUI工具测试WebService接口
    这篇文章主要讲解了“如何使用Postman和SoapUI工具测试WebService接口”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Postman和SoapUI工具测试WebSer...
    99+
    2023-06-30
  • 如何使用Postman测试需要授权的接口问题
    本篇内容主要讲解“如何使用Postman测试需要授权的接口问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Postman测试需要授权的接口问题”吧!Postman是一款免费的http模...
    99+
    2023-07-02
  • 利用node.js+mongodb如何搭建一个简单登录注册的功能详解
    前言 最近突然对数据库和后台感兴趣了,就开始了漫长的学习之路,想想自己只是一个前端,只会java斯科瑞普,所以就开始看nodejs,看着看着突然发现mongodb和nodejs更配哦!,遂就开了我的mong...
    99+
    2022-06-04
    详解 简单 功能
  • Pytest接口自动化测试框架搭建模板
    auto_api_test 开发环境: Pycharm 开发语言&版本: python3.7.8 测试框架: Pytest、测试报告: Allure 项目源码Git地址 项...
    99+
    2024-04-02
  • 详解Django+Vue+Docker搭建接口测试平台实战
    一. 开头说两句 大家好,我叫林宗霖,是一位测试工程师,也是全栈测开训练营中的一名学员。 在跟着训练营学习完Docker容器技术系列的课程后,理所应当需要通过实操来进行熟悉巩固。正好...
    99+
    2024-04-02
  • Java如何编写接口测试
    本文小编为大家详细介绍“Java如何编写接口测试”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java如何编写接口测试”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。接口测试接口:主要是子模块或者子系统间交互并相...
    99+
    2023-06-05
  • springboot多文件上传如何实现使用postman测试多文件上传接口
    这篇文章给大家分享的是有关springboot多文件上传如何实现使用postman测试多文件上传接口的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用postman测试多文件上传接口1、创建测试类(FileCon...
    99+
    2023-06-20
  • pytest接口自动化测试框架搭建的全过程
    目录一. 背景二. 基础环境三. 项目结构四、框架解析4.1 接口数据文件处理4.2 封装测试工具类4.3 测试用例代码编写4.4 测试用例运行生成报告 ​​​​​​​总结一. 背景...
    99+
    2024-04-02
  • linux如何搭建web测试环境
    搭建Linux上的Web测试环境可以按照以下步骤进行:1. 安装Apache Web服务器:在终端中运行以下命令安装Apache:`...
    99+
    2023-08-23
    linux
  • 如何在python中测试API接口
    这期内容当中小编将会给大家带来有关如何在python中测试API接口,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Pyt...
    99+
    2023-06-14
  • Linux如何测试udp端口连接
    在Linux上,你可以使用`netcat`命令来测试UDP端口的连接。以下是测试UDP端口连接的步骤:1. 打开终端(命令行界面)。...
    99+
    2023-10-11
    Linux
  • 使用Django+Vue+Docker怎么搭建一个接口测试平台
    本篇文章为大家展示了使用Django+Vue+Docker怎么搭建一个接口测试平台,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。清理或卸载旧版本:sudo yum remove&...
    99+
    2023-06-14
  • 微信小程序如何搭建访问node.js接口服务器
    这篇文章将为大家详细讲解有关微信小程序如何搭建访问node.js接口服务器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。搭建教程如下:首先,我试了一下以前的过期的证书,在...
    99+
    2024-04-02
  • 如何搭建MySQL Group Replication测试环境
    这篇文章给大家分享的是有关如何搭建MySQL Group Replication测试环境的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。    最近看了下My...
    99+
    2024-04-02
  • 如何搭建nGrinder性能测试平台
    这篇文章主要介绍了如何搭建nGrinder性能测试平台,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、nGrinder 组件介绍ngrinder包含Controller、a...
    99+
    2023-06-05
  • 如何利用python进行接口测试
    这篇文章主要讲解了“如何利用python进行接口测试”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用python进行接口测试”吧!接口测试的坑第一个坑:POST 和 GET----GE...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作