Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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 通过POST请求发送文件流时出错_Javascript_Node.js_Reactjs_Google Drive Api_Axios - Fatal编程技术网

Javascript 通过POST请求发送文件流时出错

Javascript 通过POST请求发送文件流时出错,javascript,node.js,reactjs,google-drive-api,axios,Javascript,Node.js,Reactjs,Google Drive Api,Axios,我创建了一个web服务来连接GoogleDrive API。另外还有一个系统是使用react js开发的前端。我需要通过我开发的web服务从react系统向google drive发送一个文件。为此,我使用了文件流。当我发送它时,我收到一个错误,上面写着“part.body.pipe不是函数”。这来自GoogleDriveAPI 下面的代码是我发送的POST请求的示例代码 const axios = require('axios'); const fs = require('fs');

我创建了一个web服务来连接GoogleDrive API。另外还有一个系统是使用react js开发的前端。我需要通过我开发的web服务从react系统向google drive发送一个文件。为此,我使用了文件流。当我发送它时,我收到一个错误,上面写着“part.body.pipe不是函数”。这来自GoogleDriveAPI

下面的代码是我发送的POST请求的示例代码

const axios = require('axios');
const fs    = require('fs');

const stream = fs.createReadStream('./download.jpg');

axios.post('http://localhost:3008/google-drive/upload-file', {
        stream,
        name: 'add.jpg',
        mimeType: 'image/jpeg',
    }
)
.then((res) => {
    console.log(`statusCode: ${res.statusCode}`)
    console.log(res)
})
.catch((error) => {
    console.error(error)
})
下面是用于文件上传的google drive集成

函数上传文件(auth、mainRequest、mainResponse){
const drive=google.drive({version:'v3',auth});
常数{
流动
名称
mimeType,
}=mainRequest.body;
让fileMetaData={
名称
};
让媒体={
mimeType,
主体:溪流,
};
drive.files.create({
媒体
资源:fileMetaData,
字段:“id”,
},(错误,文件)=>{
如果(错误){
console.log(错误);
返回mainResponse.status(200).json({
消息:“API返回错误:”+错误
});
}
返回mainResponse.status(200).json({
fileId:file.id
});
});
}
我认为问题出在
createReadStream
中。我不确定我是否正确使用了它


提前感谢。:)

您在fs中犯了一个错误

而是尝试使用这个同步函数

fs.readFileSync('filename.jpg','utf8')

您的意思是,不要使用
createReadStream
而使用
readFileSync
。是吗?没错,或者你可以使用async func readFile,但我不介意,但在google drive api集成中,他们请求流。