我在解析来自客户端的数据时遇到了这个奇怪的问题。
我发现所有“ 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/