node.js - React Native POST“multpart form-data”500服务器错误
问题描述
当我尝试将图像发布到我的 Node/Express 服务器(部署在 Heroku 上)时,我收到 500 服务器错误。
通过邮递员发帖工作得很好。
这是我的 React Native 代码:
upload = async uri => {
const formData = new FormData();
formData.append("photo", {
uri,
name: `photo`,
type: `image/jpg`
});
const options = {
method: "POST",
body: formData,
headers: {
"Content-Type": "multipart/form-data"
}
};
axios
.post("https://prezzi-api.herokuapp.com/upload", formData, options)
.then(response => {
console.warn(response.data);
})
.catch(error => {
console.warn("error uploading to OCR", error);
});
};
我的 Express 路线如下所示:
router.post(
"/",
multer.single("image"),
gcsMiddlewares.sendUploadToGCS,
(req, res, next) => {
console.log("post");
if (req.file && req.file.gcsUrl) {
return res.send(req.file.gcsUrl);
}
return res.status(500).send("Unable to upload");
}
);
当我不使用 Postman 时,我的路线中的 console.log 不会受到影响。
解决方案
我非常仔细地查看res
了我的 Express 路由中的对象,以了解哪些有效和哪些无效之间的区别,以下是最终从 React Native 应用程序工作的内容:
uploadToOCR = async uri => {
const formData = new FormData();
formData.append("image", {
uri,
name: "photo.jpg",
type: "image/jpg",
headers: {
Accept: "application/json",
"Content-Type": "multipart/form-data"
}
});
const options = {
method: "POST",
body: formData
};
try {
const response = await fetch(
"https://prezzi-api.herokuapp.com/upload",
options
);
if (response) {
// const json = await response.json();
// console.warn("json", json);
console.warn("response", response);
}
} catch (error) {
console.warn("error uploading to OCR", error);
}
};
推荐阅读
- python - 有没有办法保存和加载 Gensim Doc2Vec 模型的词汇表
- javascript - 如何反转计数并设置倒计时开始时间?
- python - 如何使熊猫分类堆积条形图比例为 100%
- ansible - 如何创建模块 ansible 模块或插件以动态生成要推送的文件
- python - 如何用烧瓶和会话管理解决这个问题?
- javascript - 了解 javascript If else
- java - guice条件模块安装
- azure-logic-apps - 使用 Azure 逻辑应用从 FTP 位置下载文件
- c++ - 使用参数包分配具有可变参数的函数指针
- c++ - 这个递归函数中的 for 循环增量何时发生?