mongoose

mongoose介绍
Mongoose 是在 node.js 异步环境下对 mongodb 进行便捷操作的对象模型工具。Mongoose
是 NodeJS 的驱动,不能作为其他语言的驱动。

mongoose特点
通过关系型数据库的思想来设计非关系型数据库

基于mongodb驱动,简化操作

mongoose的安装和使用
官网:https://mongoosejs.com/

安装
npm install mongoose
引入mongoose并连接数据库
新建一个目录创建一个js文件把mangoose引入进去,使用mongoose.connect()方法连接MongoDB,这是连接到本地数据库MySQL默认接口(27017)的最小配置,本地来连接失败可以尝试连接127.0.0.1,可以在url中指定多个参数

var mongoose=require(‘mongoose’)

mongoose.connect(‘mongodb://127.0.0.1:27017/stu’,function (err){
if(!err){
console.log(‘数据库连接成功’)
}
})

module.exports=mongoose
定义Schema
数据库中的 Schema,为数据库对象的集合。schema 是 mongoose 里会用到的一种数据模式,可以理解为表结构的定义;每个 schema 会映射到 mongodb 中的一个 collection,它不具备操作数据库的能力。

var mongoose=require(’./coon’)
var Schema=mongoose.Schema
var userSchema=new Schema(
{
username:String,
pass:String,
tel:String
}
)
var User=mongoose.model(‘user’,userSchema,‘user’);

module.exports=User
创建数据模型
定义好了 Schema,接下就是生成 Model。model 是由 schema 生成的模型,可以对数据库的操作。
注意:mongoose.model 里面可以传入两个参数也可以传入三个参数,如果传入 2 个参数的话:这个模型会和与模型名称相同的、名称为复数的集合建立连接。如果传入 3 个参数的话:模型默认操作与第三个参数同名的集合

var User=mongoose.model(‘user’,userSchema,‘user’);
mongoose增删改查(后端简单增删改查)
增加

<form action="/zhuce" method="post">
    <p>
        <span>
            用户名
        </span>
        <input type="text" name="username">
    </p>
    <p>
        <span>
            密码
        </span>
        <input type="text" name="pass">
    </p>
    <p>
        <span>
            电话
        </span>
        <input type="text" name="tel">
    </p>
    <p>
        <input type="submit" value="提交">
    </p>
</form>

23
//添加 router.post('/zhuce',function (req,res){ console.log(req.body); userModel.create(req.body,function (err){ if(!err){ // res.send('注册成功') res.redirect('/userlist') } }) }) 查看 <% for (let i = 0; i < users.length;i++) { %> <% } %>
</tbody>
1
username    pass    tel    操作
<%= users[i].username %>    <%= users[i].pass %>    <%= users[i].tel %>    编辑 删除
router.get('/userlist',async function (req,res){ const r=await userModel.find().exec() console.log(r) res.render('user',{'users':r}) }) 修改
点击修改跳转到edit页面,并通过id来查找到与之对应的数据

编辑
点击提交按钮提交修改后的数据

编辑页面
用户名

    <p>
        <span>
            电话
        </span>
        <input type="text" value="<%= user.tel %>" name="tel">
    </p>
    <input type="hidden" name="id" value="<%= user._id %>">
    <p>
        <input type="submit" value="提交">
    </p>
</form>
1
2
3
4
5
6
7
8
9
10
11
//点击编辑查看对应数据
router.get(’/edituser’,async function (req,res){
var user=await userModel.findById(req.query.id)
console.log(user)
res.render(‘edit’,{user})
})
//编辑
router.post(’/update’,async function (req,res){
var d=req.body
console.log(d)
var r=await userModel.update({’_id’:d.id},{$set:{‘username’:d.username,‘tel’:d.tel}}).exec()
res.redirect(’/userlist’)
})
删除

删除
//删除
router.get(’/del’,async function (req,res){
var r =await userModel.remove({’_id’:req.query.id})
res.redirect(’/userlist’)
})
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值