mongoose是什么
- Mongoose是MongoDB的对象建模工具。
- Mongoose用于和MongoDB通信(增删改查)。
- Mongoose运行在Node.js平台上。
- Mongoose()是一个构造函数
- 引入mongoose模块会自动创建mongoose示例对象
const mongoose = require('mongoose') :引入mongoose模块会自动创建mongoose示例对象
- mongoose是一个对象
- Mongoose.connections 属性
- Mongoose.Schema 函数
- Mongoose.model 模块
mongoose.connect()
定义:用于链接MongoDB数据库,它是一个异步函数
语法
mongoose.connect(uri)
mongoose.connect(数据库链接字符串)
返回值:返回一个Promise对象
示例
promise.then()
定义:
then
then方法最多接收两个参数:Promise 已完成的回调函数 和 Promise 已拒绝的回调函数
语法:
promise.then(req,res)
promise.then(data =>{
//在异步操作成功时,处理异步操作的结果
},error => {
//在异步操作失败时,输出错误的原因
})
//一个参数:大多时候我们更关注异步操作成功
promise.then( res =>{
//在异步操作成功时,处理异步操作的结果
})
//then()方法可以链式调用
promise.then( res =>{
//在异步操作成功时,处理异步操作的结果
}).then((res) => {}).then((res) => {}).then((res) => {})
返回值:返回一个等效的prmose对象
示例
promise.catch()
定义:用于为promise对象绑定请求失败时的回调
方法用于捕获错误信息。
语法
promise.catch((err) => {})
返回值:返回promise对象
promise.then 和 promise.catch()的区别
- 参数:promise.then有两个参数,promise.catch()只有一个参数
mongoose.model()
定义:
- 用于创建与MongoDB数据库通信的交互工具。
- 交互工具在这里就是指一个构造函数。
- 构造函数可以实例化一个对象。
- 通过实例对象的方法与数据库进行通信。
语法
const Blog = mongoose.model('模型名称',模型的原型)
const Blog = mongoose.model('模型名称',blogSchema)
返回值:返回一个Model()构造函数
实例
const mongoose = require('mongoose')
const {Schema} = mongoose
const blogSchema = new Schema({
title:{
type:String,
required:true,
},
author:{
type:String,
required:true,
},
snippet:{
type:String,
required:true,
},
body:{
type:String,
required:true,
}
},{})
const Blog = mongoose.model('Blog',blogSchema)
module.exports = Blog
Schema()
定义:
- 是一个构造函数或者是个类。
- 用于描述数据表的结构
- 数据库:由多个数据库表构成
- 数据库表:由多个document(记录)构成。
- Document: 由字段和值构成。
语法
new Schema({定义表结构},{选项对象})
const blogSchema = new Schema({
title:{
// 字段类型
type:String,
// 字段是否必写
required:true,
},
body:{
type:String,
required:true,
}
- 定义表结构:定义哪些字段、每个字段的数据类型、是否必填等
- 选项对象:提供了一些参数,用来配置第一个参数 [可选]
返回值:返回schema对象,表示数据结构