新手请教各位一个 express 4.x的 路由的问题
发布于 3个月前 作者 dingyong666 291 次浏览 来自 问答

每次都把 路由 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);
  }
}
回到顶部