77 lines
2.3 KiB
JavaScript
77 lines
2.3 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('/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;
|