expressJS路由器规划 - 如何建立有效的路由器

时间:2015-04-30 23:33:49

标签: javascript html angularjs node.js express

我意识到这可能是一个相当简单的问题,但请耐心等待。我是node / express的新手。

我的目录结构如下:

auth
    index.html
pub
    index.html
    login.html

这里的想法是pub中的资源是公开可用的,但auth中的资源仅在用户通过身份验证后才可用。

然而,在这一点上,我只是想让这些页面从服务器正确返回。理想情况下,我的路由引擎可以根据某些参数提供这些页面。所以:

site.com -> pub/index.html
site.com/login/ -> pub/login.html
site.com/dashboard/ -> auth/index.html

我试过这样的事情:

router.get('/dashboard/', function(req, res, next) {
    res.sendFile(__dirname + "/src/auth/index.html");
});

router.get('/login/', function(req, res, next) {
    res.sendFile(__dirname + "/src/pub/login.html");
});
router.get('*', function(req, res, next) {
    res.sendFile(__dirname + "/src/pub/index.html");
});

然而,我很快发现的问题是这些页面正在相对于它们在目录结构中的位置请求资源,并且所有请求都返回默认的index.html。所以,例如,如果我在浏览器index.html中输入site.com。这是index.html的一部分:

<script src="js/jquery.min.js"></script>

当然,浏览器会对/js/jquery.min.js发出另一个请求,路由器无法找到该请求,因此它会再次使用index.html进行响应。

如何设计足够智能的路由引擎,以便根据网址找到正确的视图,然后了解它需要提供相对于目录结构中该页面位置的该页面的所有请求?或者还有另一种处理此类问题的标准方法吗?

要使问题复杂化,auth / index.html是一个角度页面。因此,一旦加载,它将请求相对于其在目录结构中的位置的所有类型的html页面(取决于路由和包含的模板等)。

提前致谢。

0 个答案:

没有答案