请教:ExpressJS中如何禁止让用户直接访问html页面呢?
发布于 13 年前 作者 italkboy 11432 次预览 最后一次回复是 13 年前 来自
这样使用,阻止用户直接进入登录后的页面:
app.get('/main.html', function(request, response){
response.render('login',{info:'输入账户密码以登录'});
});
但是由于:
app.use(express.static(__dirname + '/public'));
而不能阻止用户访问main.html
请教一下有没有办法呢?谢啦~。
11 回复
你在static前面加上用户登录逻辑判断就可以了
嗯 谢啦 能给个小例子不呢?
我想了解一下,为什么要用express?它有什么优势?谢谢~
@italkboy 就是在use时把app.router放到express.static前面,app.router先做逻辑验证。
就像你做J2EE, 你可以直接jsp, 也可以用Struts
@luinlee 哦,那反过来说是不是,use时把express.static放在app.router前面,就不能组织用户访问页面了? 因为默认使用命令express xxx 生成的app.js是router在static前,那假如router放static后,又有什么优劣呢?
1.
express中对router的这句描述应该怎么理解呢?意思是说可以手动去调用
useapp.router来挂载应用的路由,或者如果不手动调用,则express会在第一次get或post请求中挂载吗?2.是不是正是这个手动调用
router并配置调用位置的处理,来实现next功能,进一步实现请求过滤器等?因为connect源码中static模块的send方法有是这样理解吗?, 我小白,对于
express的router模块挺迷惑……@atian25 问题是在WEB2.0下,MVC会变成MC~呵呵
@leolovenodejs node本身没有提供什么session之类的支持,只有一个http. Express就是一个项目骨架,帮你实现一些常用的东西而已,同样的类库也有Geddy等
@atian25 哦
搞一个connect middleware 判断用户是否登陆了,如果没有就重定向到登陆页面. 看起来不难的.