Можно заимпортить, можно запустить как внешний процесс. Все зависит от задачи.
Кластер - чтобы то же самое приложение запустить в нескольких процессах, грубо говоря оно запускается несколько раз параллельно. Подробности неплохо описаны в доках https://nodejs.org/api/cluster.html
Hlib, а вы посмотрите не в исходники а в html который в браузере.
На крайний случай в девтулзах в network откройте файл index.js или что там у вас грузится и посмотрите колонку initiator
Я не вижу где вы там закрываете сокет на клиенте. В том коде что вы привели - вы на каждую кнопку открываете новое соединение, оставляя старое работать. Если сервер что-то пошлет в оба сокета - получите два сообщения.
PHP я забыл лет 10 назад так что по нему ничего не скажу.
Роман, тогда поставьте его один раз локально :)
Если вам хочется именно phpMyAdmin, как любимый клиент, его будет крайне сложно запустить на ноде.
А если вы все равно будете брать какой-то другой и нелюбимый ,то см. мое предыдущее сообщение.
Vladimir Konovalenko, эта проблема инвалидации - как понять это только вы для своих данных можете решить.
например обновлять раз в месяц. или после старта приложения в фоновом режиме делать запрос и обновлять. или еще что. В кратце про инвалидацию кеша тут: https://www.martinfowler.com/bliki/TwoHardThings.html
Это не относится к способу кеширования - с любым будет то же самое.
valya1988, открывать код и разбираться, если вы можете, если не можете - то найти того кто может. По такой ошибке без копания в коде вам мало чем можно помочь.
Роман, а что такое "полноценный бэк" для вас?
express - нормальный и зрелый фреймворк для построения http - сервисов. Подходит он вам или нет - сами решайте.
Лень Романовых, Если вы так и попробовали - то по идее у вас должно все работать.
Если вам лень уточнить в вопросе, что вы уже попробовали и что не работает, то мне тем более лень копаться в вашем коде чтобы узнать это самому.
Dubrovin, это от вас зависит - если вы ничего не сделаете то конечно не будет, если настроите заголовки как надо - то будет. Браузеру все равно php там или json или еще что
wqertAnna, в больших проектах чаще всего или все UI компоненты готовые, из которых просто собирается нужное или есть верстальщики которые "дотянут" стили до красивых.
Другой вопрос что разработчик должен уметь верстать и делать это если нужно.
Ищите большие компании с налаженным процессом и большими проектами, где вам не нужно будет заново рисовать все кнопки каждый раз.
Это упрощает отладку. Не знаю почему вы называете компонент "черным ящиком" как будто вам кто-то запрещает туда посмотреть. Компонент это белый ящик тогда уж.
Если что-то пойдет не так в логике самого компонента - то вы просто берете и отлаживаете его отдельно от всего остального приложения. Хотя бы и тесты напишите.
Если что-то пойдет не так в другом месте с участием этого компонента, то за счет того что у вас стейт компонента лежит в нем самом и компонент уже протестирован и вы уверены что с ним все ок - то это уменьшает количество вещей который вам надо проверить в глобальной логике. Относительно самого компонента - вам нужно только убедиться что он правильно выполняет свой внешний контракт - в плане взаимодействия с другими частями приложения. То что у него происходит внутри, вам уже не нужно перепроверять.
И в чем именно проблема?
по клику на кнопку меняйте где-то в аппе (скорее всего можно в компоненте выше по дереву в котором и кнопка и модал лежат) в стейте флаг который определяет показывать модальное окно или нет.
В зависимости от этого флага рендерите модальное окно или не рендерите.
Вы не поняли что я предлагаю, у вас сделано совсем по другому - вы делаете script тег в HTML.
Есть разница отдавать HTML или отдавать JS. Оба могут быть сгенерированы через PHP, однако в моем варианте это будет в отдельном от всего остального js файле который прекрасно кешируется.
Кластер - чтобы то же самое приложение запустить в нескольких процессах, грубо говоря оно запускается несколько раз параллельно. Подробности неплохо описаны в доках https://nodejs.org/api/cluster.html