Node.js学习第七天笔记

博客介绍了mongoose,它是操作mongodb数据的一种形式。详细阐述了mongoose操作流程,包括安装、连接数据库、Schema定义等,还说明了CURD增删改查操作。此外,提及了MVC和RMVC架构,布置了mongoose相关作业,以及Node.js复习和Vue.js预习内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mongoose

mongodb这个数据的操作肯定不止一种形式,mongoose只是其中一种

mongoose操作流程

  1. 安装mongoose
    $ cnpm i mongoose -D
  2. 连接数据库
  var mongoose = require( 'mongoose )
  //mongoose.connect(连接地址/数据库名称)
  mongoose.connect( 'mongodb://127.0.0.1:27017/students' )
  1. Schema定义
    • 定义 Schema 原始刻版
    • 定义 Model 测试纸币 可以进行数据库的操作
    • 定义 Entity 真实的纸币
      // 1. 定义Schema
        // var studentsSchema = new mongoose.Schema( options ) //options是用来定义存储数据的数据类型
        var studentsSchema = new mongoose.Schema( {
          // 数据: 数据类型
          id: Number,
          name: String,
          age: Number
        }) 
    
      // 2. 定义模型
    
        // var studentsModel = mongoose.model( 集合名称,骨架 )
        var studentsModel = mongoose.model( 'students', studentsSchema )
    
      // 3. 定义实体
        var students = new studentsModel()
    
  2. CURD 增删改查
  • 增加
  • 查询
  • 删除
  • 修改
  1. MVC
  • M Model 数据
  • V View 视图
  • C Controller 控制器( 逻辑操作 )

–> RMVC
R Router 路由

  • 可选

  • 作业:

    • mongoose基础流程 必会
    • mongoose + RMVC + DBS 模块封装 可选
    • Node.js复习
    • Vue.js预习
  • Node.js 项目

链接:https://pan.baidu.com/s/1k6f67UTXsheT-h34zJOOAQ
提取码:h99u

例如:
英美版: 反击
美版: 越狱 二十四小时

CURD 增删改查 的主要操作文件

```
  var express = require('express');
  var router = express.Router();

  var mongoose =require('mongoose')
  mongoose.connect('mongodb://127.0.0.1:27017/gch1902',(error) => {
      if (error) throw error
        console.log( '数据库连接成功')   
  })

  //定义Schema
  var studentsSchema = new mongoose.Schema({
      //数据:数据类型
      id:Number,
      name:String,
      age:Number
  })

  //定义模型
  var studentsModel=mongoose.model('students',studentsSchema)

  //定义实体
  var students = new studentsModel()


  //1.增加

  /* students.id=88
  students.name="ggcchh"
  students.age=108
  students.save((error)=>{
      if(error) throw error
      console.log('存储成功')
  }) */

  //2.查询
  /*  studentsModel.find({},(error,result)=>{
      if(error) throw error
      console.log(result[0]._id)
  })
    */

  //3.删除(通过id找到相应的数据来删除)
  /*  studentsModel.find({},(error,result)=>{
      if(error) throw error
    var id=result[0]._id
    studentsModel.findById(id,(error,data)=>{
        if(error)throw error
        data.remove(()=>{
            console.log('删除成功')
        })
    })
  }) */


  //4.修改

  /* studentsModel.find({},(error,result)=>{
      if(error) throw errorcon
      const id =result[0]._id
      studentsModel.findById(id,(error,data)=>{
          if(error)throw error
          data.name="1902gch"
          data.save()
      })
  }) */


  //修改第二种写法
  //更新用户名
  /* var conditions = {name:"tiny"};
  var updates = {$set: {name: "tiny888888888"}};//将用户名更新为“tiny”

  studentsModel.update(conditions, updates, function (error) {
      if (error) {
          console.error(error);
      } else {
          console.error("更新用户名成功")
      }
  });
  //查询更新后的数据
  studentsModel.findOne({name: "tiny888888888"}, function (error, doc) {
      if (error) {
          console.error(error)
      } else {
          console.error("更新后数据:", doc)
      }
  }); */
  router.post('/',function(req,res,next){

      let {username,password}=req.query

      studentsModel.find({},(error,result)=>{
          for(var i=0;i<result.length;i++){
              if(result[i].name===username){
                  //用户名已经存在
                  res.render('mine',{
                      mine:JSON.stringify({
                          ret:true,
                          res:'用户名已存在'
                      })
                  })
                  return
              }
          }

          // students.name=username
          // students.save()
          res.render('mine',{
              mine:JSON.stringify({
                  ret:true,
                  res:'用户名不存在,可以注册'
              })
          })
      })



  });




  //

  module.exports = router;

```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值