0

res.format(...)在 Express 4 中,强制在后续调用中使用特定 MIME 类型的最佳方法是什么?

内容协商工作得很好(使用 curl 和手动标题时),但我在一个浏览器中,我想强制下载 PDF,所以我需要按需覆盖它。我真的不想为相同的内容(讨厌的和非 RESTy)创建一个全新的 URL 路由。

文档中仍然有引用req.accepted(在此处:http://expressjs.com/api#req.accepts),但源代码中似乎不存在。似乎 Express 4 中的更改以某种方式改变了 API,而这种方式已经从文档中溜走了。

我已经尝试res.type()了很多其他曾经有效的方法,但无济于事。

4

1 回答 1

0

我有一个答案,但我不太喜欢它。我在我的中间件中执行以下操作:

knowledgeMiddleware = function(req, res, next) {

  // Allow bypass on content negotiation when the mimeType
  // query parameter is set

  if (req.query.hasOwnProperty('mimeType')) {
    req.headers.accept = req.query.mimeType;
    delete req.query.mimeType;
  }

  ...
  next()
}

有更好的想法吗?

于 2014-08-07T20:14:33.573 回答