# node-koa-admin **Repository Path**: better_damu/node-koa-admin ## Basic Information - **Project Name**: node-koa-admin - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-19 - **Last Updated**: 2023-11-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### mongoose mongoose是一个用来连接mongodb数据库的框架;连接数据库的框架 我们一般称为ODM框架 O:object(js对象) D:documnet(文档) M:mapping(映射) ### 连接数据库 1. 下载mongoose npm i mongoose 2. 引入mongoose const mongoose = require("mongoose"); 3. 连接mongodb数据库管理系统 mongoose.connect("mongodb://127.0.0.1:27017/test"); 4. 加上成功提醒和失败警告 const db = mongoose.connection; db.on("error",console.error.bind(console, 'connection error:')) db.on("open",console.log.bind(console, 'connection success')) ### 如何做映射 1. 引入mongoose const mongoose = require("mongoose"); 2. 创建Schema 规范集合的结构 const userSchema = mongoose.Schema({ name: String, name2:{ type:String, select:false //以后但凡对当前Schema对应的集合进行查询操作都不会显示name2字段 //如果在配置了select:false之后;还想在查询操作显示对应的字段 //得在对应的查询api后加select(+name2) } }) 3. 映射集合 生成文档操作工具 cosnt userModel = mongoose.model("user",userSchema) module.exports = userModel ### CRUD-API userModel.create({key:val}) // 往数据库新增一个文档;返回一个持有新增数据的promise userModel.findById(id) //通过id去数据库进行查询;返回一个持有查询数据的promise userModel.find({key:val}) //按query去数据库中查询数据 userModel.findByIdAndUpdate(id,{ name: 'jason bourne' }) //修改原有的name字段 userModel.findByIdAndUpdate(id,{ $set: { name: 'jason bourne' }}) //新增name字段 userModel.find(query).skip(num).limit(num) //skip:跳过多少数据 limit:限制显示多少数据 ### 库 bcryptjs : 为密码加盐加密 jsonwebtoken : 生成登录令牌 basic-auth : 加密令牌 koa-body : ctx才可以拿到图片数据(ctx.request.files) koa-static : 结合koa使用的静态资源服务器