«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
someApprentice 2018/12/05 08:55:49  №1306284 1
Я закончил разбираться с Node.js, React'ом и с тем, как работает Universal Application.

https://github.com/someApprentice/Reactive-Express/

Как вы знаете, изначально, я хотел написать шифровальное приложение которое сможет работать без поддержки JS и на старых браузерах. Но в процессе разбора этих инструментов, ко мне пришло понимание, что в этом нет смысла, потому что приватные ключи должны оставаться приватно у пользователя в локальном хранилище IndexedDB кажется лучшим местом, и поэтому все процессы шифровки/дешифровки тоже привязаны к клиенту.

Может, хотя бы, получиться поддерживать старые браузеры. Нужно проводить тесты.

Что касается использования уже существующих протоколов шифрования, то TOX привлекателен. Мне нужно поразмыслить стоит ли его брать.


У меня есть только один небольшой вопрос по коду:

https://github.com/someApprentice/Reactive-Express/blob/master/src/app.js

React Router так же обрабатывает роуты на серверной части помимо самого express'а. Поэтому для express'а нет никакого смысла ставить обработчик на каждый роут. Как можно заметить роут для '/' и для '/somewhere' имеет абсолютно идентичный код. Так может для рендеринга просто поставить обработчик с регулярным выражением для всех роутов '/.*', а сверху перезаписать отдельные для POST (если такие потребуются) и для API?
Ответы: >>1306737 >>1329861
someApprentice 2018/12/06 00:26:41  №1306737 2
>>1306284
>
>React Router так же обрабатывает роуты на серверной части помимо самого express'а. Поэтому для express'а нет никакого смысла ставить обработчик на каждый роут. Как можно заметить роут для '/' и для '/somewhere' имеет абсолютно идентичный код. Так может для рендеринга просто поставить обработчик с регулярным выражением для всех роутов '/.', а сверху перезаписать отдельные для POST (если такие потребуются) и для API?
Уточнение: Можно ли поставить обработчик всех роутов с помощью регулярного выражения '/.
', не смотря на то что такой обработчик считается неприемлемым?

https://github.com/someApprentice/Reactive-Express/blob/master/src/app.js#L22-L30
https://github.com/someApprentice/Reactive-Express/blob/master/src/app.js#L38-L46
Аноним 2019/01/19 02:01:58  №1329861 3
1-126

>>1306284

> Может, хотя бы, получиться поддерживать старые браузеры. Нужно проводить тесты.

Для старых браузеров (если хочется поизвращаться) есть такие возможности хранения данных:

- document.cookie (ограничение порядка 2-4 Кб, только текст). Минус - куки будут отправляться на сервер при каждом запросе, что не очень безопасно. Также, пользователь может их очистить. Плюс - работает вообще везде, включая IE6 или Firefox 1.
- flash shared object - можно через флеш-приложение хранить данные в хранилище флеша. Доки по флешу (еле нашел такую древность) https://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7d80.html . Минус - нужен Adobe Flash. Но в старом браузере он скорее всего есть. Готовая JS библиотека для взаимодействия: https://github.com/nfriedly/Javascript-Flash-Cookies

Библиотека, которая поддерживает хранилища, о которых я даже не слышал (вроде userdata behaviour для IE 5.5+)

Еще статья по теме: https://developer.mozilla.org/ru/docs/Web/Guide/API/DOM/Storage

> Поэтому для express'а нет никакого смысла ставить обработчик на каждый роут. Как можно заметить роут для '/' и для '/somewhere' имеет абсолютно идентичный код. Так может для рендеринга просто поставить обработчик с регулярным выражением для всех роутов '/.*', а сверху перезаписать отдельные для POST (если такие потребуются) и для API?

Это схема, когда при HTTP-запросе сервер express рендерит HTML-страницу, отдает, и дальше клиент (если включен яваскрипт) на реакте инициализируется и прикрепляется к этой странице? Тогда да, можно поставить роут на звездочку. Только надо проверить, что он будет корректно отдавать код 404 для несуществующих страниц.