(angular 2)配置node.js路由以返回index.html和额外的JSON



在angular2课程之后,当我尝试从前端获取竞赛时,我最终得到了以下后端node.js服务器代码片段:

router.get('/', function(req,res,next) {   // actually /contests/
Contest.find()
  .populate('user', 'firstName')
  .exec(function(err, docs) {
  if (err) {
  return res.status(404).json({
    title: 'Error !',
    error: err
  });
  }
  res.status(200).json({
    message: 'Success',
    obj: docs
  });
  });
});

这工作得很好,当我到达它从我的应用程序内,但如果我试图通过简单地输入url访问它:…/contest/并按enter键,我只接收页面上显示的JSON对象,这不是我打算对正常应用程序做的。

我想做的是返回适当的页面(= render index.html文件的所有页面(angular2 SPA)),但也有一些JSON数据附加到响应,我可以在前端访问。有办法做到这一点吗?比如:

  res.render('index', {message: 'Success', obj: docs});  // Not working

而不是

res.json({ ... })

对于不包含返回JSON的get的路由,一切正常。

我不明白代码片段是否在架构上是错误的,或者如果我只是愚蠢的,因为我在谷歌上找不到任何信息。我对node.js比较陌生。

任何帮助,输入或指针将不胜感激!

我现在意识到没有必要以这种方式访问比赛。我通过简单地将所有这些get转发到我的API端点来解决这个问题。

相关内容

  • 没有找到相关文章

最新更新