// 导入express框架
const express = require('express')
// 实例化express对象
const app = express()
// 连接mongodb数据库
// 导入mongoose模块,用来操作mongdb数据库
const mongoose = require('mongoose')
// connect('连接地址') 连接数据库的方法
mongoose.connect('mongodb://localhost:27017/user')
// 监听连接成功或失败的方法
const db = mongoose.connection
db.on('open',()=>{console.log("数据库连接成功")})
db.on('error',()=>{console.log('数据库连接失败')})
// 一般数据库里都会存在用来存储信息的图表对象模型
// 创建一个图表对象
var Schema = mongoose.Schema
// 实例化图表对象模型,要做图表中定义好属性字段
var msgSchema = new Schema({
username:String,
message:String
})
// 根据创建好的图表对象模型,创建一个当前图表的模型,用来操作mongodb数据库的
// mongoose.model('数据库的表名',绑定的图表对象模型)
// 当前Msg就是用来操作mongodb数据库中的数据的对象
var Msg = mongoose.model('userMessage',msgSchema)
// 创建一个接口,用来存储数据信息(数据添加)
app.get('/save',(req,res)=>{
// 通过get请求传递参数req.query对象来接收参数
console.log(req.query)
// res.send(req.query)
// 将传递过来的参数,在实例化的图表对象模型中进行mongodb数据库的对象化
// 将数据存储到数据库之前,数据库里每一条数据都是由特定的id,所以我们要通过实例化的这种方法
// 在存储数据之前,给每个数据加上一个id,方便后面的数据库操作(更改,删除)
let msg = new Msg({
username:req.query.username,
message:req.query.message
})
// res.send(msg)
// save方法是调用实例化的图表模型中保存数据的方法,将数据存储到数据库中的指定图表上
msg.save().then(()=>res.send({code:200,msg:"数据保存成功"}))
})
// mongodb数据查找
app.get('/list',(req,res)=>{
// 查找当前数据表的所有数据
// Msg.find({}).then(data=>{
// res.send(data )
// })
// 精确查找 查找指定字段
// Msg.find({username:req.query.username}).then(data=>{
// console.log(data)
// res.send(data)
// })
// 模糊查询
let content = {} //查询条件
// $regex mongodb中自带的模糊查询(根据正则进行判断)
content.username = {$regex:req.query.username}
Msg.find(content).then(data=>{
res.send(data)
})
})
// mongodb数据删除
app.get('/delete',(req,res)=>{
// remove() 根据所传入的条件,删除数据库中所有符合条件的数据
Msg.remove({username:req.query.username}).then(data=>{
res.send({code:200,msg:"删除成功"})
})
})
// mongodb 数据修改
app.get('/update',(req,res)=>{
// updateOne(查找条件的对象,需要修改的字段),修改一条数据
Msg.updateOne({username:req.query.username},{message:req.query.message}).then(data=>{
res.send({code:200,msg:'数据更改成功'})
})
})
// 端口监听
app.listen(3000,()=>{
console.log('server is running 3000')
})
mongoose 增删改查
最新推荐文章于 2024-05-15 23:19:07 发布