簡單的學生信息管理

一运褪、基本操作

1、采用express生成器狰右,express+文件名+—view=ejs杰捂;
2、cd到該文件夾棋蚌,npm install
3嫁佳、npm install mongoose -D,安裝mongoose
4谷暮、運行 npm run start

二蒿往、具體內(nèi)容

1、在生成的文件中做一下修改:
(1)app.js中修改:

app.set('views', path.join(__dirname, 'views'));
app.engine('.html',require('ejs').__express);
app.set('view engine', 'html');

(2)在www文件中添加相應信息湿弦,連接數(shù)據(jù)庫

 var mongoose=require('mongoose');
 mongoose.connect('mongodb://localhost/student');
 var db=mongoose.connection;
 db.on('error',()=>{
  console.log('數(shù)據(jù)庫連接失敗')
 });
 db.once('open',()=>{
  console.log('數(shù)據(jù)庫連接成功')
 })

(3)信息提示模板

function showError(message,res) {
    var result=`<script>alert('${message}');history.back()</script>`
    res.send(result);
}
module.exports=showError

數(shù)據(jù)庫字段模板

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: '學生管理系統(tǒng)' ,
                    message:'暫無數(shù)據(jù)',
                    students:students
                });
            }
        
    },(err)=>{
        message('數(shù)據(jù)查找失敗',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('該學生已經(jīng)存在',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('數(shù)據(jù)查找失敗',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;

信息首頁

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
    <link rel="stylesheet" type="text/css" href="/stylesheets/bower_components/bootstrap/dist/css/bootstrap.css">
  </head>
  <body>
    <h1 class="text-center"><%= title %></h1>
    <a href="/addStudent" class="btn btn-default active" role="button">增加</a><br><br>
    <div class="main">
        <table class="table table-bordered">
            <tr class="text-center">
                <th class="text-center">學號</th>
                <th class="text-center">姓名</th>
                <th class="text-center">性別</th>
                <th class="text-center">年紀</th>
                <th class="text-center">班級</th>
                <th class="text-center">身份證號</th>
                <th class="text-center">操作</th>
            </tr>
        
            <% if(students){%>
                <% for(var i=0;i<students.length;i++){%>
                    <tr class="text-center">
                        <td><%=students[i].studentId%></td>
                        <td><%=students[i].name%></td>
                        <td><%=students[i].sex%></td>
                        <td><%=students[i].age%></td>
                        <td><%=students[i].class%></td>
                        <td><%=students[i].ID%></td>
                        <td>
                            <a href="/updateStudent/<%=students[i].studentId%>" class="btn btn-primary active" role="button">修改</a>
                            <a href="/removeStudent/<%=students[i].studentId%>" class="btn btn-default active" role="button">刪除</a>
                        </td>
                    </tr>
                <%}%>
            <%}else{%>
                <p><%=message%></p>

            <%}%>
        </table>
    </div>
  </body>
</html>

信息添加頁面()

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>添加學生信息</title>
     <link rel="stylesheet" type="text/css" href="/stylesheets/bower_components/bootstrap/dist/css/bootstrap.css">
</head>
<body>
    <nav class="navbar navbar-default navbar-static-top row">
        <div class="container">
            <ol class="breadcrumb loginout">
                <li>添加學生信息</li> 
                <li><a href="/">信息主頁</a></li>
            </ol>
        </div>
    </nav>
    <h1 class="text-center">添加學生信息</h1><br>
    <div class="main">
        <form class="form-horizontal" method="post" action="/addStudent">
              <div class="form-group">
                <label for="inputEmail3" class="col-sm-2 control-label">學號</label>
                <div class="col-sm-10">
                  <input type="" class="form-control" id="inputEmail3" placeholder="studentId" name='studentId'>
                </div>
              </div>

              <div class="form-group">
                <label for="inputPassword3" class="col-sm-2 control-label">姓名</label>
                <div class="col-sm-10">
                  <input type="" class="form-control" id="inputPassword3" placeholder="name" name="name">
                </div>
              </div>

              <div class="form-group">
                <label for="inputPassword3" class="col-sm-2 control-label">性別</label>
                <div class="col-sm-10">
                  <input type="" class="form-control" id="inputPassword3" placeholder="sex" name="sex">
                </div>
              </div>

              <div class="form-group">
                <label for="inputPassword3" class="col-sm-2 control-label">年齡</label>
                <div class="col-sm-10">
                  <input type="" class="form-control" id="inputPassword3" placeholder="age" name="age">
                </div>
              </div>

              <div class="form-group">
                <label for="inputPassword3" class="col-sm-2 control-label">班級</label>
                <div class="col-sm-10">
                  <input type="" class="form-control" id="inputPassword3" placeholder="calss" name="class">
                </div>
              </div>

              <div class="form-group">
                <label for="inputPassword3" class="col-sm-2 control-label">身份證號</label>
                <div class="col-sm-10">
                  <input type="" class="form-control" id="inputPassword3" placeholder="ID" name="ID">
                </div>
              </div>

              <div class="form-group">
                <div class="col-sm-offset-2 col-sm-10">
                  <button type="submit" class="btn btn-default">提交</button>
                </div>
              </div>

        </form>
    </div>
</body>
</html>

修改頁面做部分修改
action="/updateStudent/<%=student.studentId%>"傳遞參數(shù)

首頁顯示效果

2017-05-30_124047.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末竟闪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子霍掺,更是在濱河造成了極大的恐慌丸相,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件竟秫,死亡現(xiàn)場離奇詭異娃惯,居然都是意外死亡,警方通過查閱死者的電腦和手機肥败,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進店門趾浅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人馒稍,你說我怎么就攤上這事皿哨。” “怎么了纽谒?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵证膨,是天一觀的道長。 經(jīng)常有香客問我鼓黔,道長央勒,這世上最難降的妖魔是什么不见? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮崔步,結(jié)果婚禮上稳吮,老公的妹妹穿的比我還像新娘。我一直安慰自己井濒,他們只是感情好灶似,可當我...
    茶點故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瑞你,像睡著了一般酪惭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上者甲,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天撞蚕,我揣著相機與錄音,去河邊找鬼过牙。 笑死甥厦,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的寇钉。 我是一名探鬼主播刀疙,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼扫倡!你這毒婦竟也來了谦秧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤撵溃,失蹤者是張志新(化名)和其女友劉穎疚鲤,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缘挑,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡集歇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了语淘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诲宇。...
    茶點故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖惶翻,靈堂內(nèi)的尸體忽然破棺而出姑蓝,到底是詐尸還是另有隱情,我是刑警寧澤吕粗,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布纺荧,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏宙暇。R本人自食惡果不足惜榕茧,卻給世界環(huán)境...
    茶點故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望客给。 院中可真熱鬧,春花似錦肢簿、人聲如沸靶剑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽桩引。三九已至,卻和暖如春收夸,著一層夾襖步出監(jiān)牢的瞬間坑匠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工卧惜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留厘灼,地道東北人。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓咽瓷,卻偏偏與公主長得像设凹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子茅姜,可洞房花燭夜當晚...
    茶點故事閱讀 45,982評論 2 361

推薦閱讀更多精彩內(nèi)容