使用mongodb搭建你自己的api测试网站

为什么使用它?

在开发过程中,我们经常会遇到后端接口无法及时提供,虽然可以使用mock.js和apifox等工具进行临时模拟,但是我们在一些个人业务上无法找到安全,可靠的服务平台来存放api数据,这里我推荐了mongodb。

mongodb非常大方,提供512M免费的MongoDB存储额度,作为个人网站使用足够了,当然还有其他的免费数据库,如db4free.net、mlab.com。

如何使用?

  1. 首先我们打开https://cloud.mongodb.com并注册登录。
  2. 新建一个工程项目
  3. build一个数据库
  4. 服务配置按我图中选择操作就可以
  5. 设定访问的服务器账号和密码
  6. 选择云端环境(图中所示)最后点确认并关闭,就完成了。
  7. 至此我们已经有了一个属于我们自己的数据库。
  8. 创建连接
  9. 选择compass
  10. 点击I have MongDB Compass,可以看到一串连接字符串,如下图黄线框起来带箭头的地方

使用数据库管理工具连接

数据库管理工具有非常多,这里使用Navicat,操作相对简单,按照Navicat连接配置信息,密码处填写创建数据库时设置的密码连接配置信息,密码处填写创建数据库时设置的密码

  1. 选择MongoDB Cloud Services的MongoDB Atlas...
  2. 按配置信息填入MongDB Compass获取到的主机地址和账号密码,按图中步骤顺序操作。
  3. 连接成功即配置完成

挂载到项目代码代管平台

代码项目代管服务平台有很多,如Netlify、Vercel、GitHub Page、码云的gitee page、腾讯云的webify,这里使用vercel的代管服务。

  • 第一次使用首先需要安装vercel,在VScode的编辑终端里面输入npm i vercel@latest -g  

  • 使用npm init给当前目录添加一个package.json文件,配置信息一路回车即可
  • 登录vercel,在终端输入以下命令
vercel login

回车之后会让你选择登录方式,建议选择GitHub,再次回车以后会跳转到浏览器登录。

  • 浏览器登录完成以后VScdoe终端提示已经Success,通过github验证完成,后面是账号信息。提示我们可以run `vercel`来进行目录初始化

  • 我们按照提示输入以下命令,将当前目录初始化为vercel项目目录。回车之后,vercel会询问你一些信息,还是一路回车就好。
vercel
  • 提示我们已经成功架设到https://api-test-zeta-six.vercel.app/


打开浏览器登录网址发现已经可以访问但是显示404

  • 接下来我们给vercel配置路由信息测试访问,在根目录新建配置文件vercel.json,并填入下面的配置,设置当访问的路径返回状态是404时,重定向到Hello.html页面
{
    "routes": [
        {
            "handle": "filesystem"
        },
        {
            "src": "/(.*)",
            "status": 404,
            "dest": "/Hello.html"
        }
    ]
}
  • 我们在根目录新建Hello.html,并填入下面的内容
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hello!</title>
</head>
<body>
    <h1>欢迎访问</h1>
</body>
</html>
  • 现在,让我们启动我们建立好的vercel项目,在控制台输入下面的命令,按CTRL键单击控制台输出的Preview链接,就可以成功访问我们的项目
vercel


如下图已经成功访问

连接主机和数据库

我们还需要再使用npm安装以下三个包

npm i mongodb
npm i @vercel/node
npm i mongoose

附:mongoosejs文档(英文)

下面开始连接数据库

在根目录下新建一个api文件夹,并创建testdb.js和tip.js文件来存放数据

testdb.js:

//mongodb模块账号密码
const mongoose = require('mongoose');
module.exports = (req, res) => {
  mongoose.connect('mongodb+srv://account:password@cluster0.l7ntgqp.mongodb.net/test');
  //mongoose.connect('mongodb+srv://你的用户名:你的密码@mongodb提供的content地址');

  //简单接口的信息,以name为例
  const test_1 = mongoose.model('test_1', { name: String });
  const test_2 = new test_1({ name: 'jenkin' });
  test_2.save().then(() => console.log('meow'));
  res.status(200).json(test_2);
}

tip.js:

const mongoose = require("mongoose")
// 消除严格模式
mongoose.set("strictQuery", true)
// connect里填写我们在mongodb的content的配置信息
mongoose.connect("mongodb+srv://account:password@cluster0.l7ntgqp.mongodb.net/test")

const conn = mongoose.connection

conn.on("open", () => {
  console.log("ok,数据库连接成功");
})

conn.on("error", (err) => {
  console.log(err);
})

// 抛出
module.exports = mongoose

接着在终端执行node tip.js ,看到 "ok,数据库连接成功" 即代表接口创建成功了


现在打开网址的访问api下testdb.js看到以下内容,接口就已经创建成功了
只是简单的搭建指南,后期如果我们后面我们还需要进行其它优化,如优化域名参数格式和重定向转发,如vercel访问速度太慢,我们需要搭建在自己的域名解析下,以及如何通过修改数据库的数据更新api接口信息,下面有时间再来出一篇文章讲解如何进行这些优化。

版权声明:
作者:jenkin
链接:https://blog.ijenkin.top/index.php/2022/04/25/usingmongodb/
来源:Jenkin
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录