Угловая база данных без сервера
Я работаю над заданием для фиктивного приложения телефонной книги, которое является частью "дополнительных баллов" теста для открытия вакансии в местном веб-интерфейсе. Я уже делал некоторые базовые приложения с angular, но я всегда использовал их вместе с php и mysql. Для этого проекта в требованиях указано, что я не могу общаться с сервером, поэтому мне нужно хранить, редактировать, удалять и искать данные без реальной базы данных.
Я даже не знаю, какие есть варианты для достижения чего-то подобного, и какой из них мне выбрать. Я ищу простейший инструмент, который мог бы помочь мне выполнить эти требования, предпочтительно тот, который имеет приличную документацию, которая может помочь мне как можно быстрее приступить к работе.
4 ответа
Вы можете использовать простую локальную файловую систему и хранить объекты как JSON, используя JSON.stringify()
и разобрать их обратно, используя JSON.parse(jsonstring)
записать телефонную книгу в файл вашего сервера
var phonebook = {
'name1' : 234283409,
'name2' : 234253453,
'name3' : 234234236
};
var jsonStr = JSON.stringify(phonebook);
/*
__________________
contents of jsonStr
{"name1":234283409,"name2":234253453,"name3":234234236}
__________________
write a logic here to save this JSON on a file in your server.
*/
читать телефонную книгу в файл вашего сервера
//write a logic here to read JSON back from your server's file
var jsonStr = getJSONDataFromServer();
var phonebook = JSON.parse(jsonStr);
//now you can use your phonebook as a usual js object
Для хранения данных на клиенте вы можете использовать любые локальные методы хранения:
- WebStorage: API веб-хранилища (предоставляет как sessionStorage, так и localStorage)
- gears: постоянное хранилище на основе Google Gears
- whatwg db: стандарт хранения базы данных HTML
- cookie: постоянное хранилище на основе файлов cookie RFC
Лучший выбор зависит от типа данных, которые вам нужно хранить, и от использования этих данных. Самый распространенный выбор WebStorage
,
Если вы используете Angular, доступен отличный модуль ngStorage, который позволяет Web Storage работать в Angular Way.
Имейте в виду, что:
- Конечно, вы сможете хранить только данные для каждого пользователя (то есть вы не сможете хранить какой-либо глобальный статус приложения).
- любое клиентское решение для хранения данных устанавливает строгие ограничения по пространству, которые часто отличаются в разных браузерах.
Если вместо этого вы просто не хотите использовать какое-либо локальное серверное решение, вы можете попробовать какую-нибудь облачную платформу, например, Firebase (только что приобретенную Google) или другие.
Вы можете использовать Google Firebase. Если Firebase сложен для вас, тогда используйте простое локальное хранилище.