节点路由未呈现正确的URL

时间:2016-04-15 23:16:07

标签: angularjs node.js mean-stack

我正在构建一个MEAN堆栈应用程序,但是遇到了一个问题,Angular无法在我渲染的URL上识别模块,因此它在执行我的前端get请求之前抛出错误并崩溃。 / p>

我在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})
    }
  });
});

Angular CAN在点击网址/table时执行get req,但路由将转到/table/user/203029384029384,即我的Node请求的网址。我觉得这应该只是呈现/table,但事实并非如此。

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

1 个答案:

答案 0 :(得分:0)

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

您提供的ExpressJS代码仅响应/table/user/xxxxx的请求,而不是/table。因此,您需要在Node / Express中创建一个视图路由器以单独呈现视图。然后,您还需要在AngularJS中运行控制器以将数据拼接到您的视图中 - 数据是合并客户端而不是服务器端。