Express_demo
此網站實現了簡單登陸功能
我的目錄:
這個項目比較簡單,我講一講一些重要功能的實現和我一些覺得需要注意的點吧【可愛臉】
1.關於Jade的回車格式問題。
我在編寫Jade的時候報了這樣的錯:Invalid indentation,you can use tabs or spaces but not both(不要tab和空格一起使用)。
解決:在代碼編輯器中設置tab替換空格。我用的webstorm,在webstorm中設置方法如下:preference->Code Style->jade->Tabs and Indents->勾選Use Tab charactor。
【BTW】:webstorm 的Jade監測功能超級贊!!!
2、關於安裝導入Bootstrap的問題,我使用的是bower
npm install -g bower
bower install bootstrap
我當時是用window 8 命令行敲的,但是並不可以! 報錯是git的問題
所以採用PLAN B打開 git bash吧【英俊臉】
3.提一下Grunt,畢竟前端好幫手
【Grunt自動監視重啓項目】
4.當我們可以在/login頁使用Ajax提交表單,驗證跳轉頁面登陸到/home 頁。但是! 我們直接在瀏覽器 輸localhost:3000/home ,也是能訪問到home頁面的。這樣的網站是不安全的。
所以,express-session模塊就出現了。
var session = require('express-session');
修改後的index.js頁面。
var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
router.get('/', function(req, res, next) {
res.render('index', { title: '首頁' });
});
router.get('/error',function(req,res){
res.render('error');
});
router.get('/login',function(req,res){
res.render('login',{title:'登陸頁'});
});
router.post('/login',function(req,res){
var user={
'username':'admin',
'password':'admin'
}
console.log(req.body.username);
if(req.body.username==user.username&&req.body.password==user.password)
{
req.session.user = user;
res.send(200);
}else{
req.session.error = "用戶名或密碼錯誤"
res.send(404);
}
});
router.get('/wrong',function(req,res){
res.render('wrong');
});
router.get('/logout', function(req, res){
req.session.user = null;
req.session.error = null;
res.redirect('/');
});
router.get('/home',function(req,res){
if(req.session.user){
res.render('home',{title:'主頁面'});
}else{
req.session.error = "請先登錄";
res.redirect('wrong');
}
});
module.exports = router;