Как отправить файл изображения с помощью nedb - PullRequest
0 голосов
/ 22 мая 2018

Я использую 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.

1 Ответ

0 голосов
/ 16 марта 2019

Поскольку мое решение заключается в том, что вы не можете напрямую сохранить данные, но вы можете сначала преобразовать изображение в строку или строку base64, используя любую библиотеку, которую сможете найти, но при этом будет генерироваться очень длинная строка в зависимости от типа изображения.и качество.

Я использовал API-интерфейс FileReader, предоставляемый собственным JavaSCript:

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

                   let  imageStrings = (e.target.result);

                });
   fileReader.readAsDataURL(file);

Так что, отправляя это Express или любому веб-серверу, вы обнаружите, что это вызовет сообщение об ошибке Size или сообщение 413.Сообщение об ошибке полезной нагрузки в терминале или консоли вашего клиента, поэтому, если вы используете экспресс, вы можете настроить предел JSON и параметры кодирования.Даже если вы сохраните строку изображения, будет некрасиво видеть ее в файле NEDB (но эй, это работает, по крайней мере, сейчас.)

Другой вариант - рассмотреть то, что было сказано в этой теме на GitHub. page или https://github.com/louischatriot/nedb/issues/38 Эта ссылка, в которой они говорят о загрузке файла в вашу файловую систему и хранении его в другом месте и создании ссылки на базу данных в вашей базе данных nedb.

Если вы можете найти иликто-нибудь найдет жизнеспособное решение, тогда, пожалуйста, добавьте решение

...