重新加载页面重新加载的路由?

时间:2015-04-17 20:50:21

标签: express angular-ui-router mean ejs

(使用MEAN和UI路由器)

以下代码为定义的路由发送json响应。使用UI路由器呈现模板时,此工作正常;但是,如果我重新加载页面,因为响应只包含json,我留下的是一个没有html的空页面,只有json响应。

router.get('/posts/:post', function(req, res, next) {
  req.post.populate('comments', function(err, post) {
    if (err) { return next(err); }

    res.json(post);
  });
});

假设这是一个标准问题,当重新加载页面并使用json响应响应时,如何才能最好地允许此页面res.render('index')?我应该吗,

  • 为json响应创建一个单独的路由,该路由称为带有UI路由器的发布承诺
  • / posts /:post route只是用res.render('index')回复?

感谢您的回复,不确定此类问题的惯例是什么!

1 个答案:

答案 0 :(得分:0)

由于许多在线示例具有不同的目录结构,我花了一些时间才找到一个可行的解决方案。我在路由的末尾放置了一个catch,这样对于任何UI路由器状态的url请求都不会被404满足,而是总是返回index.html文件。

app.all('/*', function(req, res, next) {
    // Just send the index.html for other files to support HTML5Mode
    res.sendFile('index.html', { root: __dirname });
});

然后我在我的快速路线上添加了前缀,例如/ api / posts /:post等。显然,快速路线不应与任何角度定义的路线发生冲突。感谢NormySan on reddit告诉我这件事。