我正在构建一个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,如果我需要添加任何其他项目代码进行解释。
答案 0 :(得分:0)
您可能误解了AngularJS呈现页面的方式 - 对表数据和表格html将有单独的http请求。然后AngularJS会将数据放入客户端的html中。
您提供的ExpressJS代码仅响应/table/user/xxxxx
的请求,而不是/table
。因此,您需要在Node / Express中创建一个视图路由器以单独呈现视图。然后,您还需要在AngularJS中运行控制器以将数据拼接到您的视图中 - 数据是合并客户端而不是服务器端。