This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Урок [JS] Как подключить отладчик (Debugger) в PhpStorm для server-side

welaurs

Начинающий специалист
30 Ноя 2021
20
49
48
Использование отладчика крайне необходимо при разработке сервера. У него есть ряд преимуществ перед console.log:
  • Возможность изменять код в рантайме (иными словами без перезагрузки сервера)
  • Возможность ставить брейкпоинты
  • Подробная информация о состоянии приложения
  • Профилирование
  • Консоль для исполнения кода в рантайме
и множество других преимуществ, которые вы откроете для себя в процессе использования.

Внимание! Крайне не рекомендую использовать это на production-сервере. Данная технология позволяет производить удалённую отладку, что подразумевает под собой полный доступ к среде исполнения любого (в том числе и вредоносного для вашего сервера) кода. Если вы всё же решили использовать отладчик на production-сервере, не забудьте блокировать соединения к порту отладчика не из белого списка через файрволл.

Требования к системе:
- phpstorm как IDE (можно использовать и с другими IDE, но кнопочки другие будут)

Инструкция:
1. В конфиг сервера conf.json необходимо добавить строку "node-commandline-flags": "--inspect=9229". Также вы можете заменить порт 9229 на любой другой неиспользуемый порт. В результате у вас должен получиться подобный конфиг:
JSON:
{
    "maxplayers" : 100,
    "name" : "RAGE:MP Unofficial server",
    "gamemode" : "freeroam",
    "stream-distance" : 500.0,
    "announce" : false,
    "port": 22005,
    "bind": "0.0.0.0",
    "allow-cef-debugging": true,
    "voice-chat": true,
    "voice-chat-sample-rate": 48000,
    "node-commandline-flags": "--inspect=9229"
}
2. В phpstorm открываем конфигурации среды: Run -> Edit configurations (см. скриншот)
3. В открывшемся окне нажимаем "+", выбираем "Attach to Node.js/Chrome" в выпадающем списке. Открывшемся окне конфигурации вводим порт, который вы указали в conf.json.
4. Обязательно ставим галочку "Reconnect automatically".
4.1. (пропустите, если используете отладчик на локальном сервере) Если вы хотите подключить отладчик к удалённому серверу, в поле "Host" вместо localhost необходимо указать IP-адрес сервера. Не забывайте, что на удалённом сервере должен быть открыт указанный в conf.json порт. Итоговая конфигурация для локального сервера должна выглядеть следующим образом:

После выполнения всех шагов запускаем сервер, а в phpstorm нажимаем "Run > Debug" и выбираем созданную вами конфигурацию или нажимаем сочетание клавиш ALT+SHIFT+F9. Для теста можно поставить брейкпоинт в index.js или в коллбек playerConnect.

Другие статьи:
Как не стоит делать: безопасность ивентов и клиентских скриптов
Как не стоит делать: база данных и работа с ней на примере RedAge
 
Последнее редактирование:

welaurs

Начинающий специалист
30 Ноя 2021
20
49
48
Здесь 90% даже не слышали про софт от Jetbrains
В этом ничего страшного нет. Мне кажется одна из фундаментальных целей данного форума - обучение. Обучение подразумевает под собой то, что люди приходят с целью получить знания и улучшить свои навыки. Безусловно, есть пласт "как добавить одежду" и любителей RedAge или, как его правильно назвать по моему мнению, пример того, как делать не надо. Но я также надеюсь, что есть люди, которым интересно перенять какой-либо опыт, поделиться своим и улучшить, если так можно выразиться, культуру программирования в рейдже.
 
Реакции: lmklde

Harland David Sanders

🍔 ChefBurger
Команда форума
High developer
10 Сен 2020
3,671
2,849
219
Почему именно PHPStorm?.. если есть более удобная и популярная - Visual Studio Code, там тоже есть возможность дебажить Nodejs.
 

UchihaMadara

Старожил
FrontEnd developer
27 Окт 2020
779
278
141
Попробуй сначала Storm(А лучше IntelliJ IDEA), ты поменяешь свое мнение об удобности VSCode
 
Реакции: skyElmax

IronPython

Начинающий специалист
7 Ноя 2020
169
62
102

Amazingevich

Гений
BackEnd developer
27 Апр 2021
870
498
164
Хз как вам, но мне кажется или для js юзают webstorm Ну а так vscode топ за свои деньги
ну разве что для челов с лоу пк он топ (между JetBrains софтом и VSCode проще выбрать первое в силу удобности и в каком-то смысле возможностей)
vscode по своему хорош, но если ты постоянно что-то пишешь, то в перспективе всё равно перейдешь к JB
 
Реакции: IronPython

UchihaMadara

Старожил
FrontEnd developer
27 Окт 2020
779
278
141
Скоро Fleet еще зарелизят, так VSCode на помойку можно будет выкинуть
 
Реакции: celis

welaurs

Начинающий специалист
30 Ноя 2021
20
49
48
Привычка. Я не признаю продукты Microsoft и считаю их неудобными: что Visual Studio, что Visual Studio Code. Второй вообще не внушает доверия, ибо больше похож на текстовый редактор, чем на полноценную IDE. Но о вкусах не спорят, каждый работает с тем, что удобно
 
Реакции: celis и UchihaMadara