我使用nedb。
我如何上传图片?
我正在尝试这段代码。
但是,没有保存的证据。
const Nedb = require('nedb');
const path = require('path');
const { remote } = require('electron');
const dbPath = remote.app.getPath('userData');
const users = new Nedb({
autoload: true,
filename: path.join(dbPath, 'users.db'),
});
// upload something image file.
document.querySelector('input[type=file]').addEventListener('change', (evt) => {
const file = evt.target.files[0];
users.insert(file, (err, docs) => {
console.log(docs); // `{"_id": "hash value"}` only data
});
});
我想保存二进制数据。
请告诉我用nedb上传图片。
因为我的解决方案是你无法直接存储,但你可以做的是首先使用你能找到的任何库将图像转换为字符串或base64字符串,但它会根据图像类型和质量生成一个非常长的字符串。
我使用了本机JavaSCript提供的FileReader API:
const fileReader = new FileReader();
fileReader.addEventListener('load', e => {
let imageStrings = (e.target.result);
});
fileReader.readAsDataURL(file);
因此,当您将此发送到Express或任何Web服务器时,您会发现它会在客户端的终端或控制台中导致大小错误消息或发布413 Payload错误消息,因此如果您使用快速,那么您可以调整JSON限制和编码参数。即使您保存图像字符串,在nedb文件中看起来也很难看(但至少它现在起作用了。)
另一个选择是考虑在GitHub页面或https://github.com/louischatriot/nedb/issues/38上的这个帖子上说了什么。这个链接他们谈论将文件上传到你的文件系统并将其存储在别处,并在你的nedb数据库中对它进行数据库引用。
如果您能找到或找到任何可行的解决方案,请添加解决方案