1. 程式人生 > >用node實現ttms(票務管理系統)---下

用node實現ttms(票務管理系統)---下

7.路由規則

在對index.js進行完善後,就可以在他同級下建立檔案,完成相應的路由規則。

1.login.js

login.js程式碼如下:

var express = require('express');
var router = express.Router();
var db = require('../model/db');
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var session = require('cookie-session'
); const querystring=require('querystring'); router.get('/login', function(req, res,next) { res.render('login', {}); }); router.post('/login', function(req, res, next) { if(req.body.boss){ var queryString = "select * from boss where bossid='" + req.body.username +"'"; db.query(queryString, function
(err, rows){
if (err) { res.send(err); }else { if (rows.length == 0){ res.send("使用者名稱不存在"); }else if (rows[0].bosspassword == req.body.password) { console.log(req.session); req.session.username=req.body.username; res.redirect('bossindex'); console.log(req.session); //登入成功,返回使用者的全部資訊
}else { res.send('密碼錯誤'); } } })} else{ var queryString = "select * from admin where id='" + req.body.username +"'"; db.query(queryString, function(err, rows){ if (err) { res.send(err); }else { if (rows.length == 0){ res.send("使用者名稱不存在"); }else if (rows[0].password == req.body.password) { req.session.username=req.body.username;; res.redirect('adindex', 302); //登入成功,返回使用者的全部資訊 }else { res.send('密碼錯誤'); } } })} }); module.exports = router;

在我的登入頁有管理員登入和經理登入,所以設定相應的session,只要判斷哪個session存在,就可以判斷是管理員還是經理登入。
2.bossindex.js
程式碼如下:

var express = require('express');
var router = express.Router();



router.get('/bossindex', function(req, res) {


  if(req.session.username!=null){
        var name=req.session.username;
        res.render('bossindex', {title: name});
        console.log(name);
    }else{
        res.redirect('../login',302);
    }



});
        module.exports = router;

3.bossadd.js

程式碼如下:

var express = require('express');
var router = express.Router();
var db = require('../model/db');
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var session = require('cookie-session');
const querystring=require('querystring');




//新增管理員
router.get('/bossindex/useradd', function(req, res) {

 if(req.session.username!=null){
        var name=req.session.username;
      res.render('bossadd', {title: name});
        console.log(name);
    }else{
         res.redirect('../login',302);
    }

});

router.post('/bossindex/useradd', function(req, res) {

      var queryString = "select * from admin where id='" + req.body.userId +"'";
        db.query(queryString, function(err, rows){
        if (err) {
        res.send("404");
        }else {
           if (rows.length != 0) {
                res.send("使用者名稱已存在,註冊失敗");
            }

            else{
                 queryString = "insert into admin(id,name, password,sex,age,photo) values('" + req.body.userId + "', '" + req.body.userName + "','" + req.body.userpassword + "','" + req.body.sex + "','" + req.body.userAge + "','" + req.body.userphone + "')";

                   db.query(queryString, function(err, rows){
                   if (err) {
                         res.send(err);
                   }else {
                          res.send("成功");
                   }
                 });
               }
             }
        });
    });

//查詢賬單
router.get('/bossindex/bill', function(req, res) {

 if(req.session.username!=null){
        var name=req.session.username;
      res.render('bill', {title: name});
        console.log(name);
    }else{
         res.redirect('../login',302);
    }

});



router.post('/bossindex/bill', function(req, res) {

  var data=req.body.data;
   var queryString = "select pd.*,s.* from played pd,seat s where time='" + data +"'and pd.playid=s.playid";
      db.query(queryString, function(err, rows){
      if (err) {
        res.send("404");
      }else {
        res.json(rows);
      }

});
    });
        module.exports = router;

4.adindex.js

程式碼如下:

var express = require('express');
var router = express.Router();



router.get('/adindex', function(req, res) {
 if(req.session.username!=null){
        var name=req.session.username;
        res.render('adindex', {title: name});
        console.log(name);
    }else{
        res.redirect('login',302);

    }


});

router.post('/adindex', function(req, res) {
    res.render('adindex', {title: '後臺登入'});
});
        module.exports = router;

5.movieadd.js

var express = require('express');
var router = express.Router();
var db = require('../model/db');
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var session = require('cookie-session');
const querystring=require('querystring');


//新增電影
router.get('/adindex/movieadd', function(req, res, next) {


 if(req.session.username!=null){
        var name=req.session.username;
      res.render('movieadd', {title: name});
        console.log(name);
    }else{
         res.redirect('../login',302);
    }


});



router.post('/adindex/movieadd', function(req, res) {
  var name=req.session.username;

      var queryString = "select * from movies where moviename='" + req.body.moviename +"'";
    db.query(queryString, function(err, rows){
        if (err) {
        res.send("1");
         }
      else {
             if (rows.length != 0) {

                  res.send("電影已存在");
                }
             else
                {
                queryString = "insert into movies(moviename,moviestyle,movieimage,movieintroduction,movielenth,movietime) values('" + req.body.moviename + "', '" + req.body.moviestyle+ "','" + req.body.movieimage + "','" + req.body.movieintroduction + "','" + req.body.movielenth + "','" + req.body.movietime + "')";

               db.query(queryString, function(err, rows){
                if (err) {
                      res.send(err);
                }else {
                    db.query('SELECT * FROM movies', function(err, rows){
                    if (err) {
                        res.send("讀取失敗");
                          }
                    else {
                        var data = [];
                        data = rows;
                        res.render('movielist', {title:name,data});
                        }
                    });

                }
                });
                }
        }
  });
      });
  //新增演出廳
 router.get('/adindex/playadd', function(req, res, next) {    

  if(req.session.username!=null){
        var name=req.session.username;
      res.render('playadd', {title: name});

    }else{
         res.redirect('../login',302);
    }
});



  router.post('/adindex/playadd', function(req, res, next) {   
var name=req.session.username;

 var queryString = "select * from play where playname='" + req.body.playname +"'";
    db.query(queryString, function(err, rows){
      if (err) {
        res.send("1");
       }
      else {
             if (rows.length != 0) {

                  res.send("演出廳已存在");
                }
             else
                {
                queryString = "insert into play(playname,playrow,playcol) values('" + req.body.playname + "','" + req.body.playrow + "','" + req.body.playcol + "')";

               db.query(queryString, function(err, rows){
                if (err) {
                      res.send(err);
                }else {
                    db.query('SELECT * FROM play', function(err, rows){
                    if (err) {
                        res.send("讀取失敗");
                          }
                    else {
                        var data = [];
                        data = rows;
                       console.log("新增成功!");
                       res.render('playlist',{title:name,data});
                        }
                    });

                }
                });
                }
        }
  });


});


//演出廳資訊
 router.get('/adindex/playlist', function(req, res, next) {   
  if(req.session.username!=null){
        var name=req.session.username;





        db.query('SELECT * FROM play ', function(err, rows){
      if (err) {
          res.send("讀取失敗");
      }else {
    var data = [];
      data = rows;

    res.render('playlist', {title:name,data});   
      }
      });

    }else{
        res.redirect('../login',302);
    }
});

//新增劇目
router.get('/adindex/playmovie', function(req, res, next) {   
  if(req.session.username!=null){
        var name=req.session.username;
         db.query('SELECT * FROM movies', function(err, rows){
      if (err) {
          res.send("讀取失敗");
      }else {
         data1=[];
        data1=rows;
      }
    });


        db.query('SELECT * FROM play', function(err, rows){
      if (err) {
          res.send("讀取失敗");
      }else {
    var data = [];
      data = rows;
    res.render('playmovie', {title:name,data,data1});   
      }
      });
        console.log(name);
    }else{
        res.redirect('../login',302);
    }
});


router.post('/adindex/playmovie', function(req, res, next) {   
        var name=req.session.username;
        var time = req.body.time; 
        var playname = req.body.playname;
        var playtime = req.body.playtime;
        var s=[];
        var c="";

        s=playtime.split(':');

     s[0]= parseInt(s[0])+2;
        for(var i=0;i<=2;i++)
        {

          if(i!=2)
          {
          c+=s[i]+":";

          }
          else{
            c+=s[i];
          }
        }
        var query ="select * from played where  time='"+time+"' and playname='"+ playname+"' and( playtime between '"+ playtime+"' and '"+ c +" ' )";
        db.query(query,function(err,rows){
          if(err){
            console.log("1");
          }
          else{
            if(rows.length===0){
               queryString = "insert into played(playname,moviename,playtime,price,time,type) values('" + req.body.playname + "','" + req.body.moviename + "','" + req.body.playtime + "','" + req.body.price + "','" + req.body.time + "','1')";
        db.query(queryString, function(err, rows){
                if (err) {
                      res.send(err);
                }else {
                    db.query('SELECT * FROM played', function(err, rows){
                    if (err) {
                        res.send("讀取失敗");
                          }
                    else {
                        var data = [];
                        data = rows;
                       console.log("新增成功!");
                    res.render('played',{title:name,data});
                        }
                    });

                }
                });

            }
            else{
              res.send("該時間段內已存在計劃!");
            }
          }
        });





});



//新增演出計劃
router.get('/adindex/played', function(req, res, next) {   
  if(req.session.username!=null){
        var name=req.session.username;
        db.query('SELECT * FROM played where type=1', function(err, rows){
      if (err) {
          res.send("讀取失敗");
      }else {
    var data = [];
      data = rows;
    res.render('played', {title:name,data});   
      }
      });
        console.log(name);
    }else{
        res.redirect('../login',302);
    }
});



router.post('/adindex/played', function(req, res, next) {  


    var queryString="SELECT * FROM played where playname='"+ req.body.td+"' and playtime='"+ req.body.pt+"'";
    db.query( queryString, function(err, rows){
    if (err) {
        console.log("1");
      }else {
        var id = rows[0].playid;
        var queryString="update  played set type='0' where playid='"+ id+"' ";
         db.query( queryString, function(err, rows){
            if (err) {
        console.log("2");
      }else {

res.json({success:1});
      }
         });
        }
      });  
});
        module.exports = router;

6.user.js

程式碼如下:

var express = require('express');
var router = express.Router();
var db = require('../model/db');
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var session = require('cookie-session');
const querystring=require('querystring');



router.post('/user', function(req, res) {
//註冊


console.log(req.body.new);


console.log(req.body.phone);
console.log(req.body.password);
 var queryString = "select * from user where phone='" + req.body.phone +"'";
        db.query(queryString, function(err, rows){
        if (err) {
        res.send("404");
        }else {
           if (rows.length != 0) {
                res.send("使用者名稱已存在,註冊失敗");
            }

            else{
                 queryString = "insert into user(phone,password,name) values('" + req.body.phone + "','" + req.body.password + "','" + req.body.password + "')";

                   db.query(queryString, function(err, rows){
                   if (err) {
                         res.send(err);
                   }else {
                          res.send("成功");
                   }
                 });
               }
             }
        });

});
        module.exports = router;

7.movie.js

程式碼如下:

var express = require('express');
var router = express.Router();
var db = require('../model/db');
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var session = require('cookie-session');
const querystring=require('querystring');



router.get('/movie/:id', function(req, res) {


    if(req.session.name!=null){

        var myDate = new Date();



myDate.getDate();             
var mytime=myDate.toLocaleTimeString();    





            var moviename = req.params.id.split('=')[1];
            var querytring = "select * from played where moviename='" + moviename +"' and time='" + myDate.toLocaleDateString() +"'and playtime > '" + mytime +"'";
            var data2=[];
            db.query(querytring, function(err, rows){    
            if (err) {
                    res.send("讀取失敗");
             }else {    
                    data2 = rows;   
                    var a=[];   
                    console.log(rows);                          
                for(var i=0;i<data2.length;i++){   
                if(a.indexOf(data2[i].playname) === -1){        
                            console.log(data2[i].playname);                              
                    a.push(data2[i].playname);          
                }                                       
                    } 

                 m = new Map();                     

                for(var k=0;k<a.length;k++){            
                    var temp = [];                      
                    for(var j=0;j<data2.length;j++){    
                        if(data2[j].playname === a[k] ){        
                                                    temp.push(data2[j].playtime);               }               }                                   
                    if(temp !== null){                                console.log(a[k],temp);                       m.set(a[k],temp);                   }               }                                       

            }
        });
        console.log(data2);





            var queryString = "select * from movies where moviename='" + moviename +"'";

            db.query(queryString, function(err, rows){

            if (err) {
                    res.send("讀取失敗");
             }else {
                    var data1 = [];
                    data1 = rows;
                    res.render('movie', {name:req.session.name,test:'退出',data:"#1",data1,m,data2});                             console.log(req.session.name);              
            }
        });     
    }else{
         res.redirect('../',302);
    }
});
        module.exports = router;

8.users.js

程式碼如下:

var express = require('express');
var router = express.Router();
var db = require('../model/db');
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var session = require('cookie-session');
const querystring=require('querystring');


router.get('/users', function(req, res, next) {
      //   var myDate = new Date();
      //   myDate.getDate();             
      //   var mytime=myDate.toLocaleTimeString();    
      // var moviename = req.params.id.split('=')[1];
      // var querytring = "select * from played where moviename='" + moviename +"' and time='" + myDate.toLocaleDateString() +"'and playtime > '" + mytime +"'";
      // var data2=[];

       var myDate = new Date();
       myDate.getDate();             
       var mytime=myDate.toLocaleTimeString();  
      console.log(myDate.toLocaleDateString(),mytime);


  phone = req.session.phone;

        var query = "select s.*,p.* from seat s,played p where s.name='" + phone +"' and s.playid=p.playid and p.time='" + myDate.toLocaleDateString() +"'and p.playtime > '" + mytime +"'" ;
        db.query(query,function(err,rows){
          if (err) {
                res.send("202");
            } else {

               res.json(rows);
            }
          });



});






/* GET users listing. */
router.post('/users', function(req, res, next) {

        db.query('SELECT * FROM movies', function(err, rows){
          if (err) {
                res.send("讀取失敗");
           }else {
             data1 = [];
              data1 = rows;


          }
        });






var queryString = "select * from user where phone='" + req.body.phone +"'";

  db.query(queryString, function(err, rows){
    if (err) {
        res.send(err);
    }else {
      if (rows.length == 0){
        res.send("使用者名稱不存在");
      }else if (rows[0].password == req.body.password) {
        req.session.name=rows[0].name;
        req.session.phone=rows[0].phone;

        res.render('index',{name :req.session.name,test:"退出",data:"#1",data1});
        console.log("登入成功"); 
        console.log(req.session.name); //登入成功,返回使用者的全部資訊
      }else {
        res.send('密碼錯誤');
        console.log(req.body.password);
      }
    }
  })

});

module.exports = router;

路由規則建立完成。