这似乎应该是一个相当简单的问题,但我很难弄清楚如何解决它。
我正在使用 Node.js + Express 构建一个 Web 应用程序,我发现 express 暴露的 connect BodyParser 在大多数情况下非常有用。但是,我希望在多部分表单数据 POST 出现时对其进行更精细的访问 - 我需要将输入流通过管道传输到另一台服务器,并且希望避免先下载整个文件。
因为我使用的是 Express BodyParser,但是,所有上传的文件都会自动解析,并在它们到达我的任何函数之前使用“request.files”上传和可用。
有没有办法让我为多部分表单数据帖子禁用 BodyParser,而不为其他所有内容禁用它?
最佳答案
如果您需要使用express.bodyParser
提供的功能但是您想为 multipart/form-data 禁用它,诀窍是不要使用 express.bodyParser directly
. express.bodyParser
是一种包装其他三种方法的便捷方法:express.json
, express.urlencoded
, 和 express.multipart
.
所以不要说
app.use(express.bodyParser())
你只需要说
app.use(express.json())
.use(express.urlencoded())
这为您提供了 bodyparser 对大多数数据的所有好处,同时允许您独立处理表单数据上传。
编辑: json
和 urlencoded
现在不再与 Express 捆绑在一起。它们由单独的 body-parser 提供模块,您现在可以按如下方式使用它们:
bodyParser = require("body-parser")
app.use(bodyParser.json())
.use(bodyParser.urlencoded())
关于javascript - 如何为文件上传禁用 Express BodyParser (Node.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11295554/