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

时间:2016-10-06 15:28:51

标签: json node.js angular mean-stack

遵循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:... / contests /并按Enter键来访问它,我只会收到页面上显示的JSON对象,不是我打算用普通应用程序做的事情。

我想要做的是返回正确的页面(=所有页面的渲染index.html文件(angular2 SPA)),还要将一些JSON数据附加到响应,我可以在前端访问。有没有办法实现这一目标?类似的东西:

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

而不仅仅是

res.json({ ... })

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

我不明白代码段是否在体系结构上是错误的,或者我是不是很愚蠢,因为我在google搜索时无法找到相关信息。我对node.js来说比较新。

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

1 个答案:

答案 0 :(得分:0)

我意识到现在不必以这种方式参加比赛。我通过简单地将所有这些GET转发到我的API端点来解决它。