Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用NodeJS'通过API上传文件;获取';_Javascript_Node.js_Upload_Multipartform Data_Node Fetch - Fatal编程技术网

Javascript 使用NodeJS'通过API上传文件;获取';

Javascript 使用NodeJS'通过API上传文件;获取';,javascript,node.js,upload,multipartform-data,node-fetch,Javascript,Node.js,Upload,Multipartform Data,Node Fetch,我正在使用现有的API调用通过Nodejs向我们的云提供商发送一个文件。我在网上看到了几种不同的方法,但我想我还是会坚持使用“fetch”,因为我的大多数其他API调用也都使用了这种方法。目前,我不断收到500个内部服务器错误,不知道为什么?我最好的结论是,我没有正确发送文件,或者我的一段formdata解析不正确。请参阅以下代码: const fetch=require(“节点提取”); const formData=require(“表单数据”); 常数fs=要求(“fs”); var f

我正在使用现有的API调用通过Nodejs向我们的云提供商发送一个文件。我在网上看到了几种不同的方法,但我想我还是会坚持使用“fetch”,因为我的大多数其他API调用也都使用了这种方法。目前,我不断收到500个内部服务器错误,不知道为什么?我最好的结论是,我没有正确发送文件,或者我的一段formdata解析不正确。请参阅以下代码:

const fetch=require(“节点提取”);
const formData=require(“表单数据”);
常数fs=要求(“fs”);
var filePath=“服务器上具有文件名的我的文件的路径”;
var accessToken=“承载人;
var url='';
变量头={
“内容类型”:“多部分/表单数据”,
“接受”:“应用程序/json”,
“授权”:accessToken
};
const form=new formData();
const buffer=fs.readFileSync(文件路径);
const apiName=“我的文件名”;
表单。追加(“内容类型”、“应用程序/八位字节流”);
append(“文件”,filePath);
控制台日志(表格);
获取(url,{method:'POST',headers:headers,body:form})
.then(response=>response.json())
。然后(数据=>{
console.log(数据)
})
.catch(错误=>{
console.log(错误)

});
所以问题正是我上面提到的。代码没有上传我指定的文件。我终于弄明白了为什么,下面是修改后的代码,它将抓取文件并上传到我们的云服务提供:

const fetch=require(“节点提取”);
const formData=require(“表单数据”);
常数fs=要求(“fs”);
var apiName=process.env['API_PATH'];
var accessToken=“Bearer”+“”+process.env['Bearer_TOKEN'];
var url=process.env['apiEnv']+“/”+“archive”;
变量头={
“接受”:“应用程序/json”,
“授权”:accessToken,
};
const form=new formData();
const buffer=fs.readFileSync(apiName);
const uploadAPI=函数uploadAPI(){
表单追加(“内容类型”、“应用程序/八位字节流”);
append('file',buffer);
获取(url,{method:'POST',headers:headers,body:form})
。然后(数据=>{
console.log(数据)
})
.catch(错误=>{
console.log(错误)
});
};

uploadAPI()
它在哪一行给出错误?它在后端抛出错误,可能是因为我没有正确地向服务器发送某些内容。我无法查看脚本是如何发送请求的,例如,记录日志以向后端显示出站帖子。没有这一点,我猜测可能会出现什么问题。最好是o有一些东西可以显示实际的获取日志,就像它在后端服务器上显示的那样。这样我就可以知道哪些东西没有被正确发送,因为我在postman和curl中都有这样的功能,所以这将是一个简单的比较。API可以以各种不同的方式实现。我认为这对于任何人来说都几乎是不可能的在SO社区中,您可以明确指出特定API端点在没有更多信息或文档的情况下抛出
500内部服务器错误的原因。在用尽所有本地调试选项以满足您的请求后,下一步通常应该是与支持您尝试通信的API的团队联系获取帮助。因此,我通过使用NodeJS express echo服务器发现了问题所在。问题是,上面的脚本实际上没有在获取调用时上载文件。我将继续进行故障排除,并希望很快发布正确的获取代码……您的内容类型头中有一个输入错误。我已修复了它,但您可能会nt检查您的代码!