一、基本操作
1、采用express生成器,express+文件名+—view=ejs;
2、cd到该文件夹,npm install
3、npm install mongoose -D,安装mongoose
4、运行 npm run start
二、具体内容
1、在生成的文件中做一下修改:
(1)app.js中修改:
app.set('views', path.join(__dirname, 'views'));
app.engine('.html',require('ejs').__express);
app.set('view engine', 'html');
(2)在www文件中添加相应信息,连接数据库
var mongoose=require('mongoose');
mongoose.connect('mongodb://localhost/student');
var db=mongoose.connection;
db.on('error',()=>{
console.log('数据库连接失败')
});
db.once('open',()=>{
console.log('数据库连接成功')
})
(3)信息提示模板
function showError(message,res) {
var result=``
res.send(result);
}
module.exports=showError
数据库字段模板
var mongoose=require('mongoose')
var Student=mongoose.model('Student',{
studentId:String,
name:String,
sex:String,
age:Number,
class:String,
ID:String
})
module.exports=Student
引入模板
var path=require('path');
var Student=require(path.join(__dirname,'../model/student.js'))
var message=require(path.join(__dirname,'../message/alertMessage.js'))
index.js文件
var express = require('express');
var router = express.Router();
var path=require('path');
var Student=require(path.join(__dirname,'../model/student.js'))
var message=require(path.join(__dirname,'../message/alertMessage.js'))
/* 信息主页 */
router.get('/', function(req, res, next) {
var students=null;
Student.find({}).then((data)=>{
console.log('-----------',data)
if(!data.length==0){
students=data;
//console.log('data------',data)
res.render('index', {
title: '学生信息管理' ,
students:students
});
}else{
res.render('index', {
title: '学生管理系统' ,
message:'暂无数据',
students:students
});
}
},(err)=>{
message('数据查找失败',res)
})
});
//添加学生信息
router.get('/addStudent',(req,res)=>{
res.render('student/addStudent')
})
router.post('/addStudent',(req,res)=>{
//判断学号是否重复
Student.find({studentId:req.body.studentId}).then((data)=>{
if(!data.length==0){
message('该学生已经存在',res)
}else{
Student.create(req.body).then((data)=>{
res.render('student/addStudent')
},(err)=>{
message('学生信息添加失败',res)
})
}
},(err)=>{
message('信息查找失败',res)
})
})
//修改学生信息
router.get('/updateStudent/:studentId',(req,res)=>{
var student=null;
//console.log('--------',req.params.studentId)
Student.findOne({studentId:req.params.studentId}).then((data)=>{
student=data;
//console.log('11---------',data)
res.render('student/update',{
student:student
})
},(err)=>{
message('数据查找失败',res)
})
})
router.post('/updateStudent/:studentId',(req,res)=>{
Student.update({studentId:req.body.studentId},{$set:req.body}).then((data)=>{
res.redirect('/')
},(err)=>{
message('信息修改失败',res)
})
})
//删除学生信息
router.get('/removeStudent/:studentId',(req,res)=>{
Student.remove({studentId:req.params.studentId}).then((data)=>{
res.redirect('/')
},(err)=>{
message('信息删除失败',res)
})
})
module.exports = router;
信息首页
<%= title %>
<%= title %>
增加
信息添加页面()
添加学生信息
添加学生信息
修改页面做部分修改
action="/updateStudent/<%=student.studentId%>"传递参数
首页显示效果