如何解决如何使用hapi测试文件上传?
我的hapi路由中有这种有效载荷格式,该格式仅接受var book = {
title: volumeInfo.title,authors: volumeInfo.authors ? volumeInfo.authors[0] : undefined,selfLink: response.items[i].selfLink,cover: volumeInfo.imageLinks ? volumeInfo.imageLinks.thumbnail : undefined
}
数据,并且输出设置为multipart/form-data
:
stream
我想测试该路线,而我的有效载荷是这样:
payload: {
maxBytes: 1024,output: 'stream',parse: true,allow: 'multipart/form-data',}
hapi注入方法如下:
const FD = new FormData();
FD.append('field1','value');
FD.append('field2','value');
我得到了
无效的多部分有效载荷格式
我也尝试使用 const res = await server.inject({
method,url,headers: {
...
'Content-Type': 'multipart/form-data; boundary=--SEParaTION--',},payload: FD,});
对象设置流,但是它不起作用。我也尝试发送一个Steam
对象。
这时,我只想发送一些不会导致错误的路由。不必是FormData。只要我可以添加一些自定义字段来对其进行进一步的测试,任何可以接受的路线都可以。
谢谢。
解决方法
据我所知,FormData
在node.js中不存在,所以我假设您正在使用the form-data
module?
在这种情况下,您需要分别向form-data
询问缓冲区和标头,如下所示:
const FormData = require('form-data');
const FD = new FormData();
FD.append('field1','value');
FD.append('field2','value');
const response = await server.inject({
method,url,headers: {
<your other headers>
...FD.getHeaders(),},payload: FD.getBuffer(),});
如果要测试发送文件,还需要为filename
提供append(…)
属性,以使服务器可以正确解码二进制数据:
const fileContent = <any Buffer>;
FD.append('form_file_property',fileContent,{filename: 'a testfile'});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。