210-seat/web/routes/index.js
2019-04-18 01:00:22 +08:00

82 lines
2.5 KiB
JavaScript

var express = require('express');
var router = express.Router();
var users = require('../models/users');
var path = require('path');
var fs = require('fs');
router.get('/', function(req, res, next) {
if (!req.session.stdno) {
return res.redirect('login');
}
var seats = JSON.parse(fs.readFileSync(path.resolve(__dirname, "../../cli/seats.txt"), 'utf8'));
var directions = {
"f": "向前",
"b": "向後",
"r": "向右",
"l": "向左",
"fr": "向右前",
"fl": "向左前",
"br": "向右後",
"bl": "向左後"
}
users.findOne({ username: req.session.stdno }).exec(function(err,user){
res.render('index', { title: '自己選自己的', msg: req.flash().msg, errMsg: req.flash().errMsg, directions: directions, seats: seats, user:user });
});
});
router.post('/', function(req, res, next){
if (!req.session.stdno) {
return res.redirect('login');
}
if (!req.body.direction || !req.body.steps || req.body.direction == "" || req.body.steps == "" || !(/^[0-9]+$/g.exec(req.body.steps))) {
req.flash('errMsg','請填寫正確格式!');
return res.redirect('.');
}
users.updateOne({ username: req.session.stdno }, {
direction: req.body.direction,
steps: req.body.steps
}).exec(function(err) {
if (err) {
res.status(500).send('Error');
} else {
req.flash('msg','提交成功');
res.redirect('.');
}
});
});
router.get('/show', function(req, res, next) {
var seats = JSON.parse(fs.readFileSync(path.resolve(__dirname, "../../cli/seats.txt"), 'utf8'));
res.render('show', { title: '自己選自己的', seats: seats});
});
router.get('/login', function(req, res, next) {
if (req.session.stdno) {
return res.redirect('.');
}
res.render('login', { title: 'Login', errMsg: req.flash().error });
});
router.post('/login', function(req, res, next){
users.findOne({username: req.body.username, password: req.body.password}).exec(function(err,user){
if (err) {
req.flash('error', '帳號或密碼錯誤');
res.redirect('login');
}
if (!user) {
req.flash('error', '帳號或密碼錯誤');
res.redirect('login');
} else {
req.session.stdno = user.username;
res.redirect('.');
}
});
});
router.get('/logout', function(req, res, next){
req.session.stdno = null;
res.redirect('login');
});
module.exports = router;