【问题标题】:In Express4, how to force a MIME type for negotiation在 Express4 中,如何强制使用 MIME 类型进行协商
【发布时间】:2014-08-07 19:47:37
【问题描述】:

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

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

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

我已经尝试过res.type() 和一大堆其他曾经有效的方法,但都无济于事。

【问题讨论】:

    标签: node.js express content-negotiation


    【解决方案1】:

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

    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()
    }
    

    有更好的想法吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-12
      • 2022-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-30
      • 1970-01-01
      • 2012-08-10
      相关资源
      最近更新 更多