Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Считывание и запись данных в файл (https://javascript.ru/forum/misc/75493-schityvanie-i-zapis-dannykh-v-fajjl.html)

Nextmap 14.10.2018 23:20

Считывание и запись данных в файл
 
Здравствуйте, есть задача сделать небольшую программу, решил сделать её на JS т.к. больше ничего не знаю. но проблема, нужно использовать текстовый файл как базу данных.
Как считать его я уже разобрался, но как записать? нужно чтобы это всё работало в папке, без сети.
долго и упорно гуглил, не нашёл ничего толкового, нагуглил какуюто хрень https://github.com/eligrey/FileSaver.js но не знаю как ей пользоваться, как подключить.
Подскажите пожалуйста как эту херню подключить чтоб работала, или какой альтернативный способ сохранять данные в файл.

laimas 15.10.2018 03:06

Цитата:

Сообщение от Nextmap
нужно использовать текстовый файл как базу данных.

Используйте локальное хранилище или если любимый браузер позволяет, то лучше базу, и не парьтесь с тем, что браузеру не царское дело.

Nextmap 15.10.2018 13:02

Локальное хранилище хорошо, но надёжней было бы файл с базой иметь, а какой браузер позволяет и какую базу? мне главное чтобы всё в папке работало.

Alexandroppolus 15.10.2018 13:24

Цитата:

Сообщение от Nextmap
нагуглил какуюто хрень https://github.com/eligrey/FileSaver.js но не знаю как ей пользоваться, как подключить.

это имитация "скачивания" файла. Оно конечно сохранит данные в файл, но потом забудет о нем навсегда, прочитать никак

гугли indexedDB

laimas 15.10.2018 13:29

Цитата:

Сообщение от Nextmap
надёжней было бы файл с базой иметь
главное чтобы всё в папке работало

А локальное хранилище, это что? Браузер не работает в папке, а все свое он содержит в своих служебных каталогах. Собственно не каждый тип БД позволяет просто переносить файлы базы, создавая ее таким образом.

Цитата:

Сообщение от Nextmap
какой браузер позволяет и какую базу?

Это браузер, а значит и богатого выбора нет - Web SQL Database.

Nextmap 17.10.2018 01:15

Понял принял, буду пробывать, Web SQL Database нормальная идея, но где хранится это всё? если скажем использовать портативный браузер, то получится базу эту переносить с компьютера на компьютер?

laimas 17.10.2018 05:41

Не знаю насчет портативности, поддерживает ли эти браузеры базу. Что касается переноса файлов базы - например в MySQL можно файлы таблиц типа MYISAM взять и перенести в какой либо каталог, и будет создана база под именем этого каталога, останется только добавить пользователя на эту базу. А вот файлы таблиц INNODB уже не получится.

Базы не таскают файлами туда сюда, базы экспортируют/импортируют. Файлы экспорта базы данных представляют из себя обычные SQL запросы, которые при импорте будут выполнены и будет создана база на новом месте или добавлена только таблица в существующую базу, или обновлена уже существующая таблица.

Это спецификация https://dev.w3.org/html5/webdatabase/, это на чем она базируется https://ru.wikipedia.org/wiki/SQLite.

База данных, это "грамотное" хранение данных с поддержкой их различных типов, это возможность индексации данных, это расчеты, сравнения, преобразования в запросах и большие возможности сортировки выборки. Очень сложно представить себе к примеру интернет магазин, который бы вместо полноценной базы использовал самописные файлы для хранения товаров. В тоже время набор простых данных вполне может обслуживать нечто более легкое. Что за данные и их структура, которые хранит ваша база? Может действительно хватит локального хранилища, тогда и с моб. устройствами легче будет. Странно только то, что если для себя, то о портировании речи вроде быть не должно.

Nextmap 17.10.2018 10:00

В общем база будет хранить данные о растениях, цветах, пока точно не известно какие и сколько полей будет, будут картинки, но их заказчик будет заливать вручную в папку и соответственно переименовывать в нужный id.
Ни о каких поисках речи не шло, и позиций я думаю не будет очень много, поэтому наверное локального хранилища + портативного браузера будет достаточно. Оно же отдельное на каждый браузер?

laimas 17.10.2018 10:14

Чтобы иметь представление о структуре базы и какая потребуется, почитайте хотя бы о реляционных базах данных и нормализации. Сдается мне, что по перечисленному, локальное хранилище, это не то.
Базы данных могут хранить тип BLOB, то есть изображения вполне можно записать в базу. Но размеры изображений непомерно будут увеличивать ее объем, а все БД под браузер имеют ограничения на него. Изображения обычно пишут в каталог, а база хранит только ссылки на них. Исходя из этого, скорее всего нужно как минимум приложение браузерное, а не html страничка, либо чисто приложение без всякого браузера, коли все предполагает только локальное хранение и использование, включая и моб. устройства. А если моб. устройства, то хранить данные в этом случае лучше тогда в облаке.

Nextmap 17.10.2018 14:57

Ну понятно) я бы написал обычное приложение, но с написанием интерфейсов у меня всегда была беда) да и не хочу усердствовать, хочу написать на том что знаю) но я понял в какую сторону копать, спасибо)


Часовой пояс GMT +3, время: 15:40.