用Node.js+express+cloud MongoDB Atlas创建API接口

介绍

  • 本文用 node.js express框架链接 cloud MongoDB Atlas 搭建API接口
  • 本文侧重于cloud MongoDB Atlas

建立项目

  • 建立一个文件夹 用VScode编译器打开
  • 选择文件夹在终端打开

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

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

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

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

创建API端口

在当前目录下 建立 app.js 文件node

const express = require("express")
const app = express()

app.get('/' , (req,res) => {
  res.send("Hello World")
})

//端口
app.listen(3000)
复制代码

保存 在终端中 输入 npm start 打开浏览器 打开 https://localhost:3000git

端口创建完成

  • node.js安装 mongoDB 在终端中ctrl+c 终止批处理操做 再输入 npm install mongoose 回车安装

注册与建立cloud MongoDB Atlas

点我进MongoDB官网github

  • 点击右上角 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文件下写入增删改查代码mongodb

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-parsercors
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的数据:
    -浏览器访问数据:

  • 控制台:

项目源码

点我查看源码数据库

未经做者容许禁止转载! express

相关文章
相关标签/搜索