如何在NodeJs中发送multipart / form-data PUT请求?
我需要发送一个这样的数组:
[ a: 'b', file: {file content} ]
我试图使用formData选项使用请求模块:
request.put({ url: 'http://example.com/upload', formData: { a: 'b', file: fs.createReadStream(__dirname + '/for-test.jpg') } });
在这个例子中,PUT数据将是空的,看起来像formData选项被忽略。
我试了你的代码,并有同样的问题。 经过一番挖掘,我意识到你正在使用未发布的function。
如果您searchstring“formData”的当前npm包,它不存在。 如果你克隆最新的github,并search,string“formData”出现(我做了使用grep
,btwsearch), 甚至有一个testing 。
如果你想使用这个functionprerelease你可以挂上你的package.json指向回购:
{ ... "dependencies": { ... "request":"git+https://github.com/request/request.git#master", ... } }
一个新鲜的npm安装将给你带来这个function的最新github。 这样做之后,一切都为我着了。
这应该阻止你,直到function发布:)
你需要使用body
属性,并且你需要对你的对象进行string化。
request({ method: 'PUT', url: 'http://example.com/upload', body: JSON.stringify({ a: 'b', file: fs.createReadStream(__dirname + '/for-test.jpg') }) });