介绍
- 本文用 node.js express框架连接 cloud MongoDB Atlas 搭建API接口
- 本文侧重于cloud MongoDB Atlas
创建项目
- 创建一个文件夹 用VScode编译器打开
- 选择文件夹在终端打开

在终端中输入 npm init 然后一直回车 最后确认

node.js 安装 express 输入npm install express nodemon回车

- 完成后打开 package.json 检查是否安装成功 安装成功如下图:

- 安装成功后 修改 scripts 修改为
"start": "nodemon app.js"


建立API端口
在当前目录下 创建 app.js 文件
const express = require("express")
const app = express()
app.get('/' , (req,res) => {
res.send("Hello World")
})
//端口
app.listen(3000)
保存 在终端中 输入 npm start 打开浏览器 打开 https://localhost:3000

- node.js安装 mongoDB 在终端中
ctrl+c终止批处理操作 再输入npm install mongoose回车安装
注册与创建cloud MongoDB Atlas
- 点击右上角
TryFree注册一个新用户可以获得500m的免费云数据 - 正常填写邮箱密码注册完成进入主页
- 选择
FREE点击Create a Starter Cluster
- 随便选择一个亚洲节点 我这里是选择taiwan的

- 给你项目起个名称

- 完成后点击下方的
Create Cluster创建

- 页面会自动跳转 然后等待7-10分钟 等项目初始化完成
- 完成之后显示如下界面

- 点击右侧栏
Network Access给项目 再点击+ADD IP ADDRESS添加接入IP - 我这边选择所有IP都可以接入
ALLOW ACCESS FROM ANYWHERE再确认Confirm

- 需要在注册邮箱确认 所有IP都可以接入 点击邮箱的连接即可确认

- 确认完成状态:

- 点击右侧栏
Database Access再点击+ADD NEW USER添加接入用户 - 填写用户名 密码 和选择权限后添加

- 点击右侧栏
Clusters再点击COLLECTIONS

- 选择添加我的数据库 填写好后创建 创建成功
点击 右侧栏
Clusters返回主页 点击CONNECT连接数据 点击
Copy

- 修改为user123的密码 admin修改为创建的数据库名
- 例:
mongodb+srv://user123:user123@cluster0-kxpls.azure.mongodb.net/userDB?retryWrites=true&w=majority
- node.js 安装 doenv 输入
npm install doenv回车安装 - 安装完成后 在根目录添加文件
.env在文件中写入连接数据库的url
DB_CONNECTION=mongodb+srv://user123:user123@cluster0-kxpls.azure.mongodb.net/userDB?retryWrites=true&w=majority
- 连接数据库 在app.js中写入
const mongoose = require("mongoose")
require("dotenv/config")
mongoose.connect(process.env.DB_CONNECTION,{ useUnifiedTopology: true,useNewUrlParser: true },() => {
console.log("connect DB!")
})
数据库的增删改查操作
- 在根目录下创建
routes文件夹 在文件加下创建posts.js文件来统一处理数据库增删改查代码的编写 - 在根目录下创建
models文件夹 在文件加下创建Post.js文件来处理数据库键名添加

- 在
posts.js文件中 引入models文件下的Post.js
const Post = require('../models/Post')
- 在
Post.js中写入 数据库测试的键名
const mongoose = require('mongoose')
const PostSchema = mongoose.Schema({
title:{
type:String,
required:true
},
connect:{
type:String,
required:true
},
date:{
type:Date,
dafault: Date.now
}
})
module.exports = mongoose.model('Posts' , PostSchema)
- 在
app.js文件中 引入routes文件下的posts.js
const postRoute = require('./routes/posts')
app.use('/posts',postRoute)
-在posts.js文件下写入增删改查代码
const express = require("express")
const router = express.Router()
const Post = require('../models/Post')
//查询数据库所有数据
router.get('/', async (req, res) => {
try {
const finePosts = await Post.find()
res.json(finePosts)
} catch (err) {
res.json({ message: err })
}
})
//添加数据
router.post('/', async (req, res) => {
const post = new Post({
title: req.body.title,
connect: req.body.connect
})
try {
const savePost = await post.save()
res.json(savePost)
} catch (err) {
res.json({ message: err })
}
})
//查找对应id的数据
router.get('/:postId', async (req, res) => {
try {
const findPost = await Post.findById(req.params.postId)
res.json(findPost)
} catch (err) {
res.json({ message: err })
}
})
//删除数据
router.delete('/:postId', async (req, res) => {
try {
const removePost = await Post.remove({ _id: req.params.postId })
res.json(removePost)
} catch (err) {
res.json({ message: err })
}
})
//修改数据
router.patch('/:postId', async (req, res) => {
try {
const updatePost = await Post.updateOne({ _id: req.params.postId }, { $set: { title: req.body.title } })
res.json(updatePost)
} catch (err) {
res.json({ message: err })
}
})
module.exports = router
- 注意:若需要在服务端上正常运行还需要安装以下依赖
- node.js 安装 doenv 输入
npm install body-parser回车安装 - node.js 安装 doenv 输入
npm install cors回车安装 - 在
app.js引入body-parser与cors
const bodyParser = require('body-parser')
const cors = require('cors')
app.use(cors())
app.use(bodyParser.json())
测试
- 在终端中
npm start启动API - API测试软件 postman
- 插入数据:

- 查询所有数据:

- 查询id为
5d9caaeec6c67361e0ac3f1a的数据:
- 更改id为
5d9caaeec6c67361e0ac3f1a的数据:
- 删除id为
5d9caaeec6c67361e0ac3f1a的数据: -浏览器访问数据:

- 控制台:

项目源码
未经作者允许禁止转载!