新手请教各位一个 express 4.x的 路由的问题
每次都把 路由 app.use(’/’, routes); app.use(’/reg’, reg); app.use(’/api’, api); app.use(’/login’,login); app.use(’/upload’,upload); app.use(’/createImgClass’,create); app.use(’/User’,User); app.use(’/search’,search); 像这样写到app.js 里面 好别扭啊 有没有什么写法 好点的
还有没有 能直接 拦截 是否登陆的 每条路由上面都写个 if 判断 好恶心…
7 回复
写成connect中间件就可以了
路由统一放到 routers 里面
module.exports = function(app){
// ...
}
登陆认证,用 中间件方式来实现
app.use('/search’,auth.requiresLogin,search);
推荐你使用passport 这个库
灰常感谢 大神的 解答
@jerrywu55 module.exports = function(app){ // … } 这个怎么用
看 cnode 源码
@dingyong666 在你的app.js里把它require进来,再把你声明的app变量作为参数传进去就好啦
route是个train,所以可以
app.use('/User',checkAuth, User);
function checkAuth(req, res, next) {
if (authed()) {
next();
} else {
res.redirect(loginPage);
}
}