美文网首页
MongoDB基本应用

MongoDB基本应用

作者: 新世界的冒险 | 来源:发表于2021-10-09 09:11 被阅读0次

    使用官方的mongodb包: https://github.com/mongodb/node-mongodb-native
    使用第三方包mongoose: https://mongoosejs.com/
    管理工具mongoDB-Compass:https://www.mongodb.com/try/download/compass

    1.安装mongoose

    npm install --save mongoose
    

    2.连接数据库

    db/index.js引入创建mongoose

    const mongoose = require('mongoose);
    // 连接数据库 如果没有该数据库,当插入数据的时候会自动创建
    module.exports = ()=> {
      mongoose.connect('mongodb://localhost:27017/myTest',{useUnifiedTopology:true,useNewUrlParser: true})
      .then(()=> {
        console.log('数据库连接成功')
      }).catch(err => {
        console.log('数据库连接失败',err)
      })
    };
    

    app.js中引入db

    const MongoConnect = require('./db')
    // 连接数据库
    MongoConnect()
    

    3.设计用户模块的schema

    models/index.js 创建用户模块

    const mongoose = require('mongoose);
    // 目的:增加约束,以保证数据地完整性,避免脏数据
    const userSchema = new mongoose.Schema({
      username: {
         type: String,
         required: true // 该字段不为空
      },
      pwd: {
        type: String,
        required: true // 该字段不为空
      }
      age: {
        type: Number
      }
    })
    const User = mongoose.model('users', userSchema)
    module.exports = {
      User
    }
    

    routers/user.js 引用用户模块

    const router = require('koa-router')()
    const {User}= require('../models')
    router.prefix('/users')
    // 添加用户
    router.post('/add', async (ctx) => {
      const {username, pwd} = ctx.request.query
      await User.create({username, pwd}).then(rel => {
         if (rel) {
           ctx.body = {
             code: 200,
              msg: '添加成功',
              data: rel
            }  
         } else {
            ctx.body = {
             code: 300,
             msg: '添加失败',
            }
         }
      }).catch(err => {
         ctx.body = {
           code: 400,
           msg: '添加时出现异常',
         }
      })
    })
    

    相关文章

      网友评论

          本文标题:MongoDB基本应用

          本文链接:https://www.haomeiwen.com/subject/xkbxoltx.html