错误:没有准备好parsing。 缺less内容types?

我正在用curl开发一个node.js / express.js应用程序。 curl命令: curl -X PUT -i -T LICENSE.txt localhost:9981/v1/test/bucket/some-object -s

错误,说内容types应该存在。 “text / plain”的内容types不起作用。 实际上,唯一可行的内容types是: Content-Type: multipart/form-data; boundary=---something Content-Type: multipart/form-data; boundary=---something

然而! 如果我只是放一些文本文件,应该是什么边界? curl命令挂起,因为,我认为,边界不能弥补。

现在,这个curl命令起作用了: curl localhost:9981/v1/test/container/some-object -X PUT -F "file=@/opt/nedge/README.md"但这不是我想要的,因为我不想指定file=@

最后一个问题是正在运行的node.js代码。 这是一个示例busboy,他们的github的第一个例子: https : //github.com/piousbox/busboy

我的问题是:要么使用curl指定正确的边界,要么使busboy(或node.jsstream)全部接受multipart/form-data以外的内容types。

Busboy只处理multipart / form-data(通常至less有一个字段是文件)或application / x-www-form-urlencoded请求(没有文件)。 如果您需要处理“文本/纯文本”或其他types的请求,则只需在常规表单处理中间件之前添加自己的中间件即可。 也许这样的东西:

 // .... app.use(function(req, res, next) { if (!req.headers['content-type']) return next(new Error('Bad request')); if (req.headers['content-type'].indexOf('text/plain') === 0) { // read from `req` here with req.read() or req.on('data', ...), etc. } else next(); }); // ....