javascript - 使用express解析 'multipart-data'

标签 javascript json express multipartform-data body-parser

我在解析来自客户端的数据时遇到了这个奇怪的问题。

我发现所有“ bool true”都转换为“字符串 true”,“未定义”也相同,因此我无法在这些字段上执行“if”。

这是我所拥有的:

var bodyParser = require('body-parser');
var app = express();
app.post('/someroute',function(req,res,next){
   console.log(typeof req.someBooleanValue);
});

我总是得到“字符串”,并且我期待控制台中的 bool 值,因为这是客户端发送的内容。

现在,如果内容类型设置为“application/json”,则可以正常工作

我知道正文解析器不适用于“多部分”内容类型。但那我有什么选择呢?我尝试了多方和多方。但是用它们进行解析后,我仍然得到字段作为字符串。

除了编写一个小实用程序来检查内容类型,然后使用 JSON.parse('fields') 或类似的方法进行一些丑陋的引号剥离之外,是否没有其他方法可以处理此问题?

最佳答案

我正在使用Busboy对于带有express.js的REST应用程序,在multipart/form-data中处理文件上传,并且工作正常。

项目页面上提供了示例。 只是警告,如果您需要处理文件上传,请确保您有一个用于保存文件的 WriteableStream 的 'finish' 事件的监听器,并且您不完全依赖 'finish' 事件由 Busboy 本身引发。

关于javascript - 使用express解析 'multipart-data',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33486914/

相关文章:

javascript - 使用 jQuery 的表单无法正常工作

json - 意外的ConvertTo-Json结果?答:它的默认深度为2

json - 有没有办法向 JSON 对象添加方法?

javascript - 公共(public)/私有(private)休息 API

javascript - 如何在 Nest.js 中使用查询参数?

javascript - 影响输入元素处理的 ID

javascript - defaultValue 在 JavaScript 代码中不起作用

javascript - 使用字节将字母数字代码解码为键值对象

javascript - 在 Chart.js 中绘制对象

node.js - Express JS不渲染jade模板