github.com/e154/smart-home@v0.17.2-0.20240311175135-e530a6e5cd45/doc/content/ru/docs/javascript/storage.md (about) 1 2 --- 3 title: "Временное хранилище" 4 linkTitle: "storage" 5 date: 2021-11-19 6 description: > 7 8 --- 9 10 В проекте **Smart Home** предоставляется `in memory` хранилище, которое позволяет хранить и кэшировать произвольные значения 11 в памяти. Значения также периодически архивируются на диск каждую минуту. 12 13 {{< alert color="success" >}}Функция доступна в любом скрипте системы.{{< /alert >}} 14 15 Для работы с хранилищем доступны следующие методы через объект "Storage": 16 17 1. `push(key, value)`: Этот метод используется для добавления значения в хранилище. Вы передаете ключ `key` и значение `value`, 18 2. которое будет сохранено в памяти. Пример использования: 19 20 ```javascript 21 Storage.push('temperature', 25.5); 22 ``` 23 24 2. `getByName(key)`: Данный метод позволяет получить значение из хранилища по указанному ключу `key`. Если значение найдено в 25 3. памяти, оно будет возвращено. Пример использования: 26 27 ```javascript 28 const temperature = Storage.getByName('temperature'); 29 console.log(temperature); 30 ``` 31 32 3. `search(key)`: Этот метод выполняет поиск значения по ключу `key`. Сначала он ищет значение в памяти, и если не находит, 33 4. производит поиск в базе данных. Результат поиска возвращается. Пример использования: 34 35 ```javascript 36 const result = Storage.search('temperature'); 37 console.log(result); 38 ``` 39 40 4. `pop(key)`: Данный метод удаляет значение из хранилища по указанному ключу `key`. Если значение найдено и удалено, метод 41 5. возвращает удаленное значение. Пример использования: 42 43 ```javascript 44 const removedValue = Storage.pop('temperature'); 45 console.log(removedValue); 46 ``` 47 48 Методы объекта "Storage" предоставляют возможность добавления, получения, поиска и удаления значений из `in memory` хранилища. 49 Вы можете использовать это хранилище для временного хранения данных в памяти, с возможностью сохранения на диск и выполнения 50 эффективного поиска значений. 51 52 ---------------- 53 54 ### Работа с хранилищем 55 ```coffeescript 56 Storage 57 .push(key, value) 58 .getByName(key) 59 .search(key) 60 .pop(key) 61 ``` 62 63 | значение | описание | 64 |-------------|---------| 65 | push | поместить значение в хранилище по ключу `key` | 66 | getByName | получить значение из хранилища по ключу `key` | 67 | search | поиск значения по ключу `key` | 68 | pop | удаление записи | 69 70 ---------------- 71 72 ### пример кода 73 74 ```coffeescript 75 # Storage 76 # ################################## 77 78 foo = 79 'bar': 'bar' 80 81 value = JSON.stringify foo 82 83 # save var 84 Storage.push 'foo', value 85 86 # get exist var 87 value = Storage.getByName 'foo' 88 89 # search 90 list = Storage.search 'bar' 91 92 Storage.pop 'foo' 93 ```