javascript - 将 http 请求中的 base64 图像发送到服务器
问题描述
我正在尝试使用请求 npm 模块从 nodejs/express 应用程序将 base64 图像发送到另一个 rest api 端点,我正在使用以下代码:
首先,这是使用 multer 和 datauri 将图像上传到内存并将其转换为 base64 的中间件:
const path = require("path");
const multer = require("multer");
const DataURIParser = require("datauri/parser");
const storage = multer.memoryStorage();
const multerUploads = multer({ storage }).single("image");
const dUri = new DataURIParser();
const dataUri = (req) =>
dUri.format(path.extname(req.file.originalname).toString(), req.file.buffer);
module.exports = {
multerUploads,
dataUri,
};
下一个 server.js 文件,我想向 http://another-api/upload 发出另一个发布请求:
const express = require("express");
const cors = require("cors");
const bodyParser = require("body-parser");
const morgan = require("morgan");
const { multerUploads, dataUri } = require("./multer");
// create express app
const app = express();
// enable CORS
app.use(cors());
// add other middleware
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(morgan("dev"));
app.post("/upload", multerUploads, (req, res) => {
if (req.file) {
const file = dataUri(req).content;
console.log(file);
res.send(file);
// code to send to another api
}
});
// start the app
const port = process.env.PORT || 3000;
app.listen(port, () => console.log(`App is listening on port ${port}.`));
解决方案
试着看看axios。
let axios = require("axios");
// ...
axios({
method: 'post',
url: 'http://another-api/upload',
data: {
image: file
}
}).then((res) => {
// code for if is success full
}).catch((err) => {
// code for if there is any error
})
//...
推荐阅读
- python - SyntaxError:map 中的语法无效(lambda (x, y)
- firebase - Firebase signInWithEmaiLlink - 可以在 UI 上而不是电子邮件上提供链接
- c# - 从可观察集合中获取特定项目的索引 - UWP c#
- python - 如何用数值替换分类值?
- windows - 如何自动接受打印机的状态窗口?
- typo3 - 实体到数据图/数组
- parallel-processing - SM(流式多处理器)、活动块和活动扭曲在 GPU 中如何表现?
- python-3.x - **Kwargs 0 位置参数错误
- python-2.7 - Jpype 在 Windows Python 2.7 上使用 jpype.startJVM 命令崩溃
- ios - LinkedIn集成到objective-c iOS,无需安装LinkedIn App