【发布时间】:2020-10-03 13:23:40
【问题描述】:
我正在使用 node.js/express 将 base64 编码的图像作为字符串发送到我的后端。我想将它存储在我的 Postgres 数据库中,但我无法获取字符串。这有什么限制吗?
在前端到达我的 AJAX 调用之前,我用以下内容填充数据:
var data = {picture: ""};
const reader = new FileReader();
const get_picture = new Promise((resolve, reject) => {
//event handler
reader.onload = resolve;
reader.onerror = reject;
//read image
reader.readAsDataURL(file);
})
.then(() => {
data.picture = reader.result;
})
.catch(() => {
show_modal(modal.title.error_custom, modal.body.error_image);
});
console.log(target_data);
$.ajax({ [...]
我的控制台按预期显示:
Object { picture: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIA…"}
这是特快路线:
router.post("/upload_image", (req, res, next) => {
const picture = req.body.picture;
console.log("test");
console.log(picture);
}
这在我的后端控制台中显示了一个空行。参数的大小有什么限制吗?或者我做错了什么?谢谢
编辑:这适用于异步/等待
$("#form").submit(async function (event) {
[...]
var data = {picture: ""};
const get_picture = await new Promise((resolve, reject) => {
//event handler
reader.onload = resolve;
reader.onerror = reject;
//read image
reader.readAsDataURL(file);
})
.then(() => {
data.picture = reader.result;
})
.catch(() => {
show_modal(modal.title.error_custom, modal.body.error_image);
});
$.ajax({ [...]
【问题讨论】:
-
您的 nodejs 应用程序中是否包含 body-parser 或等效项?
标签: javascript node.js express base64