我想先尝试访问网站时时跳转到login,然后就这么写
var express = require('express'),
routes = require('./routes'),
http = require('http'),
path = require('path'),
fs = require('fs'),
juicer = require('juicer'),
config = require('./config').config;
var app = express();
var staticDir = path.join(__dirname, 'public');
app.configure(function () {
app.set('port', config.port || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'html');
app.engine('html', function (path, options, fn) {//利用juicer作为模板引擎
fs.readFile(path, 'utf8', function (err, str) {
if (err)
return fn(err);
str = juicer(str, options);
fn(null, str);
});
});
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.cookieParser());//开启cookie
app.use(express.session({//开启session
secret: config.session_secret
}));
});
routes(app);
app.use(function (req, res, next) {
var url = req.originalUrl;
console.log(url);
if (url != "/login" && !req.session.user) {//拦截
res.redirect('/login')
console.log(1)
}
next();
});
app.configure('development', function () {
app.use(express.errorHandler());
});
app.configure('production', function () {
app.use(express.static(staticDir, { maxAge: 3600000 * 24 * 30 }));//静态文件支持加缓存
app.use(express.errorHandler());
app.set('view cache', true);
});
http.createServer(app).listen(app.get('port'), function () {
console.log("Express server listening on port " + app.get('port'));
});
然后router是
var site = require('../controller/site');
module.exports = function(app){
app.get('/', site.index);
app.get('/home', site.home);
app.get('/login', site.showLogin);
//app.post('/login', site.login);
}
直接访问login是可以访问的,但是为什么访问主页,或者任意一个页面跳转不到login呢