Что такое NodeJS? Как это работает? Как я могу начать писать код?

Да, мощное программное обеспечение, используемое такими компаниями, как Uber, Netflix и PayPal, проще, чем вы думаете. Это своего рода основная идея Node, чтобы вы могли начать работу с не более чем 10 строками кода. Но прежде чем мы начнем писать код, давайте разберемся, что такое NodeJS.

Пусть будет back-end JavaScript, тогда будет back-end Javascript

Вероятно, вы привыкли запускать JavaScript внутри своего браузера. Браузер, который отвечает за чтение, обработку и отправку пользовательского ввода на сервер, является интерфейсом нашего приложения. Это возможно только потому, что для запуска JavaScript ваш браузер создан с помощью JavaScript Engine. Движок JavaScript Google Chrome называется Chrome V8. Он очень надежный, стабильный и быстрый. Но лучшая часть, это открытый исходный код. Так как NodeJS!

Да, и я забыл сказать, но вы можете убрать движок V8 из Google Chrome. NodeJS построен на нем. Он расширяет его и позволяет запускать код JavaScript вне браузера. Это означает, что вы можете думать о NodeJS (Node, для друзей) как о среде JavaScript, похожей на ваш браузер. Но Node может получить доступ к вашей файловой системе, напрямую подключаться к базам данных и даже создавать веб-серверы и управлять ими.

Но я могу сделать это с помощью PHP, ASP.NET и даже Python, который даже не является реальной средой для программирования… упс

Помимо шуток (я люблю python, но я люблю шутки), есть очень подробный список плюсов и минусов каждой технологии, которую вы выбираете для написания своих веб-приложений. Но это не тема данной статьи. Итак, я скажу вам всего два простых слова: неблокирующий ввод-вывод (это два слова, верно?).

Можете ли вы одновременно готовить и водить машину? Вероятно, нет, так как это может быть физически невозможно. Но NodeJS тоже не может этого сделать. Вместо этого он достаточно умен, чтобы поставить задачу по приготовлению пищи в очередь (точно так же, как и вы, если вы не так голодны) и начать движение (да, без логической причины, потому что я не мог придумать лучшего примера). Он не ждет, пока приготовление пищи будет завершено, чтобы начать движение, но когда оно закончит приготовление пищи, оно готово к вкусной еде.

Понимание неблокирующего ввода/вывода

Я знаю, что, возможно, зашел слишком далеко с этим примером, но позвольте мне привести пример javascript:

В этом скрипте мы видим неблокирующий ввод-вывод, работающий в javascript. Функция setTimeout — неблокирующая функция, потому что она не остановит нормальное выполнение кода. Код после него будет запущен, поэтому вы видите вывод в странном порядке.

Теперь, если вы заметили, setTimeout запускает переданную ему функцию по истечении указанного вами времени, которое в данном случае составляет 2000 миллисекунд или 2 секунды. Попробуйте запустить этот код в консоли JavaScript вашего браузера, и вы увидите, что все запускается мгновенно, за исключением функции внутри setTimeout, которая запускается только через 2 секунды.

Я знаю, что мне нужно слишком много времени, чтобы начать давать вам код для написания на NodeJS. Моя цель здесь не в том, чтобы научить его устанавливать, настраивать или запускать код с помощью Node. Я просто хочу научить вас некоторым простым вещам о том, как работает NodeJS и как он был создан. Но я также обещал вам, как начать.

Начните кодировать NodeJS

Зачем нам возиться с установкой и настройкой NodeJS? Ну, мы не знаем. Мы можем сделать это онлайн! Посетите repl.it и начните писать и компилировать код. Начать работу и работать с несколькими файлами так просто, что я не буду вас больше ничему учить, просто уходите отсюда и начинайте программировать!

PS: извините за мой плохой английский, я все еще учусь. Пожалуйста, если я в чем-то ошибаюсь, просто напишите мне в комментариях, и я сделаю все возможное, чтобы исправить это.