Но дело в том, что прежде чем бегать, нужно идти. Точно так же нам нужно изучить некоторые основные строительные блоки, прежде чем мы сможем создавать эти замечательные программы. Итак, мы собираемся изучить некоторые основные строительные блоки, из которых мы собираемся создавать более крупные программы. Мы постараемся сделать это быстро, потому что это не так интересно. Но мы постараемся не делать это слишком быстро, потому что хотим, чтобы все могли остаться с нами. Грегор Кицалес, Простые данные

Node.js или Node — это программное обеспечение, которое позволяет писать JavaScript на стороне сервера. Хотя сейчас можно писать даже мобильные и десктопные приложения на Node (и, конечно же, на JavaScript). Но сфера применения этих статей касается только серверной части.

В этих статьях предполагается, что вы знаете JavaScript и знакомы с веб-разработкой в ​​целом. Также хорошо, если вы знакомы с интерфейсом командной строки или CLI. CLI доступен во всех операционных системах в виде терминала, консоли или командной строки. Я буду использовать словесный терминал для ссылки на эту утилиту CLI. Кроме того, я использую операционную систему Fedora. Итак, все инструкции написаны только для терминала Fedora. Вам нужно управлять ими, если вы используете любую другую операционную систему.

Прежде всего, вам нужно скачать Node с его официального сайта. Вы увидите, что есть две разные версии Node — LTS и Current. LTS означает Долгосрочная поддержка, а Current означает версию с новейшими функциями. Если вы планируете создать производственное приложение, вам следует использовать LTS. Но если вы экспериментируете или хотите попробовать новейшие функции, вы можете выбрать последнюю версию.

Установка Node проста и понятна, если только вы не планируете устанавливать ее из исходного кода. Итак, я не собираюсь писать инструкции HOWTO INSTALL и предполагать, что вы знаете, как установить его на свой компьютер.

После завершения установки мы можем подтвердить установку Node, выполнив следующую команду в терминале.

$ node --version
v15.1.0

Если вы получаете версию в качестве вывода, то Node правильно установлен на вашем компьютере. Но, если у вас возникнут какие-либо проблемы во время установки, пожалуйста, дайте мне знать.

Еще одна вещь, прежде чем мы пойдем дальше, выполните следующую команду в терминале.

$ npm --version
7.0.8

Если вы получаете версию в качестве вывода, значит, npm правильно установлена ​​на вашем компьютере. Теперь у вас может возникнуть вопрос: что такое npm? npm — это тема будущих статей, а сейчас просто помните, что когда вы устанавливаете Node, он также устанавливает на ваш компьютер npm или диспетчер пакетов Node. цель!

Итак, теперь наша среда готова для Node.

Примечание: --version или -v? На этот счет нет глобального правила. Вам необходимо помочь команде help узнать, какая опция поддерживается. Но в большинстве случаев вы получите и то, и другое. Если вы пишете более одного символа в качестве опции, вы будете использовать -- и - с опцией одного символа. Следовательно, v с - и version с --. Опять же, это не глобальное правило, и вы не увидите этот шаблон во всех приложениях командной строки (попробуйте python -v или python --version в терминале, если на вашем компьютере установлен Python!).

Игра в доспехах

Когда вы устанавливаете Node на свой компьютер, вы также получаете так называемую оболочку Node или консоль. Консоль — это место, где вы можете опробовать некоторые строки кода JavaScript в реальной среде для отладки, тестирования или экспериментов.

Откроем терминал и напишем node. Вы получите консоль.

Welcome to Node.js v15.1.0.
Type ".help" for more information.
>

Да, это > консоль. Вы можете ввести здесь любой действительный код JavaScript, и консоль немедленно выполнит его. Это очень полезно, если вы хотите попробовать наши несколько строк кода или не знаете, как использовать функцию или функциональность. Например, я не знаю, каков результат isNaN('hello'). Я могу ввести эту строку в консоль, и она сообщит результат следующим образом:

> isNaN('hello');
true
>

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

Пока мы здесь, давайте напишем программу hello, world в консоли. Вы знаете, как написать что-то в консоли на JavaScript, верно? Правильный! Используя метод console.log(). Например,

> console.log('hello, world');
hello, world
undefined
>

Итак, мы только что написали знаменитую программу hello, world на Node!

Давайте попробуем еще несколько строк кода в консоли, чтобы познакомиться с окружением. Как насчет определения нескольких переменных, таких как p, r, n, а затем расчета простых процентов или si из этих значений.

> let p = 1000
undefined
> let r = 10
undefined
> let n = 1
undefined
> let si = p * r * n / 100
undefined
> si
100
>

Примечание. В ES6 теперь вы можете определять переменные, используя ключевое слово let. Старый var работает нормально. Но сейчас рекомендуется использовать let из-за пресловутого поведения var.

Вы могли заметить, что код, который мы до сих пор писали в консоли, идентичен тому, что мы обычно пишем в клиентском JavaScript. Но есть пара различий между JavaScript Node и клиентским JavaScript. Например, DOM или объектная модель документа. В браузере или в клиентском JavaScript вы можете написать document.getElementById(). Но в Node, если вы его напишете, то получите следующую ошибку.

> document.getElementById('root');
Uncaught ReferenceError: document is not defined
>

Причина очевидна. Node не запускается внутри браузера, поэтому у него нет объекта document. С другой стороны, он работает на сервере, и благодаря этому у вас есть доступ к файловой системе, сетям, процессам и т. д., что невозможно в JavaScript браузера.

Вы можете попробовать несколько примеров в консоли, и как только вы почувствуете уверенность, вы можете создать ее, используя команду .exit или дважды нажав ctrl+c.

Запись в файлы

Но фактический код находится внутри файлов, заканчивающихся расширением .js. Давайте создадим новый файл hello-world.js и напишем следующий код.

console.log('hello, world');

Откройте терминал, в котором вы сохранили эту hello-world.js программу. Для запуска этой программы используется следующая команда.

$ node hello-world.js
hello, world

Команда для запуска программы Node: node, а затем имя файла. Node предполагает, что вы будете писать код внутри файла с расширением .js. Если это так, вы можете опустить расширение при запуске программы следующим образом.

$ node hello-world
hello, world

Позвольте мне пойти дальше и сказать вам, что Node просто совсем не заботится о расширении. Создайте файл с именем hello.world и скопируйте тот же код, который мы написали в файле hello-world.js.

console.log('hello, world');

Теперь у этой программы нет расширения .js. В связи с этим нам нужно написать имя программы с расширением при запуске из терминала следующим образом.

$ node hello.world 
hello, world

Вы даже можете указать свое имя в качестве расширения. Но не делайте этого! Я имею в виду, что с этим расширением вы не получите подсветку синтаксиса в редакторе!

Давайте напишем еще одну программу, в которой мы будем печатать приветственное сообщение Брюсу. Создайте файл с именем greetings.js и откройте его в текстовом редакторе. Давайте сначала определим переменную firstName с помощью let следующим образом.

let firstName = "Bruce";

Затем давайте утешим приветственное сообщение Брюсу следующим образом.

let firstName = "Bruce";

console.log('Hello, ' + firstName);

Вы знаете, как мы собираемся запустить эту программу, верно?

$ node greet.js
Hello, Bruce

Хотя я упомянул, что вы можете опустить расширение при выполнении программы Node, если она имеет расширение .js. Но, я все равно собираюсь написать это, и я бы предложил вам сделать это.

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

P.S. Вы также можете прочитать эту же статью в моем блоге.