节点路由未呈现正确的URL



我正在构建一个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})
    }
  });
});

Angular CAN在到达url /table时执行get-req,但路由指向/table/user/203029384029384,即我的Node请求的url。我觉得这应该只是渲染/table,但事实并非如此。

如果router.get在table/user/:id渲染/table,我需要什么。似乎这个代码应该做到这一点,不是吗?PLMK如果我需要添加任何其他项目代码进行解释。

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

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

最新更新