如何使用 nedb 发送图像文件

How do I send image file with nedb

我使用 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 字符串,但它会生成一个很长的字符串,具体取决于图像类型和质量。

我使用了原生提供的FileReader API JavaSCript :

 const fileReader = new FileReader();
    fileReader.addEventListener('load', e => {

                   let  imageStrings = (e.target.result);

                });
   fileReader.readAsDataURL(file);

因此,当您将此发送到 Express 或任何网络服务器时,您会发现它会在您的客户端的终端或控制台中导致大小错误消息或 Post 413 负载错误消息,因此如果您使用express 然后你可以调整 JSON 限制和编码参数。 即使你保存了图像字符串,在 nedb 文件中看到它也会很难看(但至少现在它可以工作了。)

另一种选择是考虑在 GitHub page or https://github.com/louischatriot/nedb/issues/38 这个线程上所说的 link 他们谈论将文件上传到您的文件系统并将其存储在其他地方并对其进行数据库引用在你的 nedb 数据库中。

如果您能找到或任何人找到可行的解决方案,请添加解决方案