res.render 页面重新加载时的路由?

res.render for routes on page reload?

(在 UI 路由器上使用 MEAN)

以下代码为定义的路由发送 json 响应。当使用 UI Router 呈现模板时,这工作正常;但是,如果我重新加载页面,因为响应仅包含 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);
  });
});

假设这是一个标准问题,我怎样才能最好地让这个页面在重新加载页面时 res.render('index') 并响应 json 响应?我应该,

感谢您的任何回复,不确定此类问题的通常做法是什么!

由于许多在线示例具有不同的目录结构,因此我花了一段时间才找到可行的解决方案。我在路由的末尾放置了一个 catch all,这样 url 对任何 UI 路由器状态的请求都不会遇到 404,而是总是 return 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 等。显然,快速路由不应与任何 angular 定义的路由冲突。感谢 reddit 上的 NormySan 告诉我这件事。