node中使用mongoose步骤和方法

mongoose网址:http://www.mongoosejs.net/
  • 准备工作
	1.d盘新建mongo_data文件,用来存储数据,打开cmd,将数据库连接到mongo_data文件夹中
	mongod --dbpath=D:\mongo_data
	2.打开另一个cmd窗口,输入mongo
		show dbs(显示数据库)
		use students(创建数据库)
  • 创建项目
1)创建students文件夹,进入文件夹,安装所需的包
	npm init -y
	npm install express art-template express-art-template bootstrap body-parser --save
	npm install mongoose
2)在文件夹中创建
		app.js(node执行文件)
		router.js(路由)
		students.js(student数据库表文件) 
		views(文件夹,用来保存html文件)
		public(文件夹,用来存储静态资源)
3)书写html文件
4)书写app.js文件,
		
		let express = require('express');
		let app =express();
		//设置静态资源
		app.use('/public/',express.static('./public/'))';
		app.use('node_modules',express.static(''./node_modules'));
		//配置bodyparser中间件,用来接收post请求的数据
				let bodyParser =require('body-parser');									app.use(bodyParser.urlencoded({extended:true}));
			app.use(bodyParser.json());
			//配置模板引擎
		app.engine('html',require('express-art-template');
		//配置路由
		let router = require('./router.js');
		app.use(router);//要在模板引擎和中间件之后
		app.listen(3000,()=>{
			console.log('server is running...')
		})
	5)可以使用nodemon app.js启动文件	
  • 配置数据库students.js
let mongoose = require('mongoose');
//数据库连接
mongoose.connect('mongodb://127.0.0.1:27017/students');//mongodb://127.0.0.1:27017后面接的是数据库名称
//设置表结构
let StudentSchema = mongoose.Schema({
	id:Number,//id
    num:String,//学号
    name:String,
    sex:Number,
    subject:String,//班级
    age:Number,//年龄
    grade:Number,//分数
})
//导出表结构
module.exports = mongoose.model('student',StudentSchema )
  • route.js文件接收数据库内容
let express = require('express');
let router = express.Router();
//链接数据库
let Students  = require('./students')
//显示首页
function findAll(res){
    Students.find({},(err,doc)=>{
        if(err){
            return  console.log('查找失败')
        }
        res.render('index.html',{students:doc})
    })
}
router.get('/',(req,res)=>{
    //查找
   findAll(res)
})
//显示添加页面
router.get('/students/create',(req,res)=>{
    res.render('create.html')
})
//显示编辑页面
router.get('/students/edit',(req,res)=>{
    Students.findOne({id:Number(req.query.id)},(err,data)=>{
        if(err){return console.log('查找失败')}
        let {id,name,num,subject,sex,age,grade} = data;
        res.render('edit.html',{id,name,num,subject,sex,age,grade})
    })

})
//添加学生
router.post('/students/create',(req,res)=>{
    Students.find({},(err,data)=>{
        if(err){return console.log('查找失败')}
        req.body =Object.assign(req.body,{id:data.length+1});
        Students.create(req.body,(err)=>{
            if(err){
                return console.log('添加失败')
            }
            Students.find({},(err)=>{
                if(!err){
                    res.redirect('/')
                }
            })
        })
    })

})
//删除学生
router.get('/students/del',(req,res)=>{
    Students.deleteOne({id:Number(req.query.id)},(err)=>{
        if(err){
            return console.log('删除失败')
        }
        findAll(res)
    })
})
//编辑学生
router.post('/students/edit',(req,res)=>{
    let {id,name,num,subject,sex,age,grade} = req.body;
    Students.findOneAndUpdate({id:Number(id)},{$set:{name,num,subject,sex,age,grade}},{useFindAndModify:true},(err)=>{
        if(err){return console.log('更新失败')}
        res.redirect('/')
    })
})
module.exports = router;
github地址:https://github.com/hyx-tomandjerry/studentsBynode/tree/master
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值