2016-04-15 24 views
0

我正在构建MEAN堆栈应用程序,但遇到Angular无法识别模块的问题,因此它在执行我的前端时抛出错误并崩溃 - 结束请求。节点路径无法呈现正确的URL

我在我的routes/index.js文件中写了这段代码,其中table是查看页面。

router.get('/table/user/:id', function(req, res){ 
    User.findById(req.params.id).populate('entries').exec(function(err, entries){ 
    if(err){ 
     console.log(err) 
    } else { 
     res.render('table', { entries: entries}) 
    } 
    }); 
}); 

角,当它击中的URL /table但路线是要/table/user/203029384029384,我的节点请求的URL可以执行GET REQ。我觉得这应该只是渲染/table,但事实并非如此。

我需要什么,如果router.get在table/user/:id呈现/table。似乎这个代码应该这样做,不是吗? PLMK如果我需要添加任何其他项目代码的解释。

回答

0

您可能会误解AngularJS呈现页面的方式 - 表格数据和表格html将有单独的http请求。然后AngularJS会将数据放入客户端的html中。

您提供的ExpressJS代码只会回应请求/table/user/xxxxx而不是/table。所以你需要在Node/Express中创建一个视图路由器来分别渲染视图。然后,您还需要在AngularJS中运行一个控制器来将数据拼接到您的视图中 - 数据是合并的客户端,而不是服务器端。

+0

我的问题是我不知道该视图路由器应该是什么样子。一旦我将用户重定向到正确的视图url,我就可以处理客户端的Angular数据。路线让我完全糊涂寿。 – PanicBus

+0

您可以将路由视为“根据发送给服务器的URI执行的代码”。这就是全部意思。您应该在Chrome开发者工具上打开“网络”标签,以观察所有加载的不同路线。 – steampowered