Как развернуть Node.js-приложение
В этой статье мы расскажем, что такое Node.js и как его развернуть на вашем сервере.
Что такое Node.js
.jpg)
Node.js – это кроссплатформенная среда выполнения JavaScript с открытым исходным кодом, которая создана на базе JavaScript-движка Chrome V8.
Цель Node – предоставить разработчикам JavaScript возможность использовать полный стек, позволяя им кодировать операции на стороне сервера.
Сценарии его использования включают скрипты на стороне сервера, системы реального времени, потоковые веб-приложения, одностраничные приложения, инструменты для совместной работы и веб-игры.
Node имеет событийно-ориентированную архитектуру с возможностью асинхронного ввода-вывода. Он невероятно быстр благодаря способности компилировать JavaScript в собственный машинный код. Кроме того, Node может обрабатывать огромное количество активных соединений и позволяет разработчикам легко создавать масштабируемые высокопроизводительные приложения.
Основные плюсы Node.js
- Серверное программирование. Node.js позиционируется как идеальное решение для создания высокопроизводительных серверных приложений. Он предоставляет среду выполнения для создания веб-серверов, API, чат-серверов, приложений реального времени и других серверных приложений.
- Асинхронное программирование. Одной из главных особенностей Node.js является его асинхронная среда. Он использует неблокирующий ввод-вывод (non-blocking I/O), что позволяет обрабатывать множество запросов одновременно без блокирования других операций. Это делает Node.js эффективным для обработки большого количества запросов в режиме реального времени.
- Высокая производительность. Как упоминалось ранее, Node работает на высокопроизводительном движке JavaScript от Google. V8 может компилировать и выполнять JavaScript с молниеносной скоростью, главным образом, потому что он компилирует JavaScript в собственный машинный код.
Node также использует цикл событий, который позволяет ему выполнять неблокирующие операции ввода-вывода, несмотря на то что JavaScript – это однопоточный язык программирования.
Все эти параметры делают Node одним из самых быстрых вариантов на рынке.
- Масштабируемость. Одним из ключевых преимуществ Node.js является его способность масштабироваться.
Приложения Node могут масштабироваться как по горизонтали, так и по вертикали. Горизонтальное масштабирование достигается за счет добавления дополнительных узлов к существующей системе, а вертикальное масштабирование означает добавление дополнительных ресурсов к конкретному узлу.
Отличные возможности масштабирования платформы делают ее подходящей как для стартапов, так и для крупных компаний с десятками миллионов ежедневных пользователей – например, LinkedIn, Netflix и PayPal.
Node также хорошо подходит для архитектуры микросервисов, позволяя разработчикам создавать небольшие компоненты, которые вписываются в конвейер непрерывной доставки и могут легко масштабироваться по требованию.
- Легко обучаема. Основа Node на JavaScript позволяет чрезвычайно легко освоить его разработчикам, которые уже знают основы JavaScript. Он не требует сложного обучения, и его можно освоить всего за несколько недель. Простота Node делает его идеальным для всех типов проектов.
- Ускоренный выход на рынок. Простота Node и огромное количество пакетов npm значительно сокращают время выхода на рынок. На GitHub и других платформах есть множество проектов с открытым исходным кодом, которые можно использовать в качестве шаблонов для максимально быстрого запуска вашего проекта.
Деплой Node.js-приложения: этапы
Деплой Node.js-приложения – это процесс размещения и запуска вашего Node.js-приложения на удаленном сервере или хостинге, чтобы оно стало доступным для пользователей.
Это финальная часть в разработке, когда ваше приложение готово к использованию в боевой среде.
Деплой включает в себя несколько основных этапов:
- Перенос кода. Код вашего приложения переносится на сервер. Обычно это делается с использованием системы контроля версий (например, Git) и клонирования репозитория на сервер.
- Установка зависимостей. Все необходимые пакеты и библиотеки, которые используются в приложении, должны быть установлены на сервере. Это позволяет приложению корректно работать.
- Запуск приложения. После переноса и установки зависимостей, приложение запускается на сервере и становится доступным для пользователей.
.jpg)
Шаг 1. Подготовьте хост для деплоя
Прежде всего необходимо подготовить хост для деплоя веб-приложения.
Если у вас ещё нет подходящего сервера, то обратите внимание на компанию RU-CENTER, которая предоставляет мощные виртуальные серверы на Linux, обеспечивая высочайший уровень производительности и надежности.
Наши серверы оснащены SSD-дисками для быстрой загрузки и обработки данных, а аппаратная виртуализация KVM гарантирует эффективное использование ресурсов.

С арендой нашего сервера вы получаете полный контроль над настройкой сервера и установкой программного обеспечения.
Выделенные ресурсы предоставляют максимальную мощность для ваших сайтов и приложений, а встроенные механизмы безопасности и регулярные обновления обеспечивают надежную защиту от уязвимостей.
Важно! В этом руководстве мы будем использовать машину с операционной системой Ubuntu.
- Перед началом установки Node.js и npm важно убедиться, что пакеты вашей операционной системы актуальны. Выполните следующую команду для обновления списка доступных пакетов:
sudo apt-get update
- Далее установим Node.js.
Чтобы установить Node.js в Ubuntu, можно воспользоваться командой apt-get. Однако стоит учесть, что в стандартных репозиториях Ubuntu может быть устаревшая версия Node.js.
В таком случае вы можете установить более новую версию с помощью пакета «nodejs», который включает в себя движок Node.js и утилиту npm:
sudo apt-get install nodejs

- Если вы установили Node.js через стандартный репозиторий, то вам потребуется отдельно установить npm.
Важно! npm (Node Package Manager) используется для управления пакетами Node.js.
Установите npm, прописав следующую команду:
sudo apt-get install npm
- Чтобы убедиться, что установка прошла успешно, введите:
В выводе вы получите версии Node.js и npm.

Теперь ваш сервер готов к выполнению Node.js-приложений. Вы можете приступить к установке зависимостей и развертыванием вашего приложения.
Шаг 2. Перенесите код на сервер
Деплой Node.js-приложения всегда начинается с переноса кода проекта на хост. Самый удобный и распространенный способ для этого – использование системы управления версиями Git.
- Прежде всего, убедитесь, что Git установлен на вашем сервере Ubuntu. Вы можете выполнить команду:
Если Git уже установлен, в выводе появится номер версии. Если же нет, то пропишите следующую команду для его установки:
sudo apt install git
- Приступите к клонированию репозитория.
Предположим, что код вашего проекта хранится на GitHub (или на другой платформе управления версиями). Для клонирования репозитория на ваш сервер используйте команду git clone, указав адрес репозитория после нее.
Например, для клонирования репозитория с GitHub:
git clone https://github.com/имя_пользователя/ваш-репозиторий
Здесь https://github.com/имя_пользователя/ваш-репозиторий – это URL вашего репозитория на GitHub. Команда git clone клонирует весь код проекта на ваш сервер.
- Перейдите в директорию проекта с помощью команды cd:
Теперь код вашего проекта успешно клонирован на сервер.
Шаг 3. Установка зависимостей
После успешного клонирования вашего Node.js-проекта на сервер и перехода в его директорию, необходимо установить зависимости. Под этим подразумевается установка всех необходимых пакетов для вашего проекта.
Это можно сделать с помощью npm, которую вы установили в шаге 1.
Важно! Вы обязательно должны находиться в той директории, где расположены файлы вашего Node.js-проекта, включая файл package.json.
- Установите зависимости, прописав:
Эта команда просматривает файл «package.json», который находится в корневой директории вашего проекта, и устанавливает все пакеты из раздела «Dependencies». Они будут загружены и установлены в папку «node_modules».
В зависимости от количества зависимостей установка может занять некоторое время.
- Теперь, когда все зависимости установлены, вы можете запустить ваше приложение:
Где «myapp.js» – это имя вашего корневого файла приложения.

После выполнения этих шагов ваше Node.js-приложение успешно запустится на сервере и будет готово к обслуживанию запросов.
Шаг 4. Управление запуском и обновлением приложения
Используя менеджер процессов pm2, вы можете решить две распространенные проблемы: остановку приложения при закрытии терминала и необходимость ручного перезапуска приложения после внесения изменений в код.
Вот как выполнить эту настройку:
- Выполните следующую команду, чтобы установить pm2:
sudo npm install pm2 -g

Она позволит использовать pm2 в любом месте на вашем сервере.
- Для запуска вашего Node.js-приложения с использованием pm2 пропишите:
sudo pm2 start myapp.js —name «myweb-app» —watch
- «myapp.js» – это имя вашего основного файла приложения. Замените его на фактическое имя вашего файла, если оно отличается.
- «—name «myweb-app»» – это имя, под которым процесс будет запущен. Вы можете выбрать любое имя, которое вам удобно.
- «—watch» – это директива, которая указывает pm2 следить за изменениями файлов и автоматически перезапускать приложение при их обнаружении. С помощью неё вы сможете мгновенно видеть изменения в коде.
- Чтобы ваше Node.js-приложение автоматически запускалось при старте или перезагрузке сервера, выполните следующие команды:
sudo pm2 startup
Что делают эти команды:
- «pm2 startup» генерирует команду, которую нужно выполнить, чтобы настроить автозапуск pm2.
- «pm2 save» сохраняет текущий список запущенных процессов pm2.
Теперь ваше Node.js-приложение работает в фоновом режиме, а pm2 следит за ним. Оно будет автоматически перезапускаться при изменениях в коде и запускаться после перезагрузки сервера, даже если вы закроете терминал. Это делает процесс деплоя и управления Node.js-приложением более удобным и надежным.
.jpg)
В статье мы рассмотрели важные шаги и методы для успешного деплоя Node.js-приложения.
С деплоем Node.js-приложений на сервере вы можете предоставить вашим пользователям доступ к вашему приложению в онлайн-среде и обеспечить его стабильную и надежную работу.
Мы надеемся, что данное руководство было полезным для вас, и оно поможет вам успешно развернуть ваши проекты на сервере.
Учебник. Создание приложения Node.js и Express в Visual Studio
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
В этой статье вы узнаете, как использовать Visual Studio для создания простого веб-приложения Node.js, использующего платформу Express.
Прежде чем приступить к работе, изучите краткий список вопросов и ответов, который познакомит вас с некоторыми основными понятиями.
- Что такое Node.js? Node.js — это серверная среда выполнения JavaScript, выполняющая код JavaScript.
- Что такое npm? Диспетчер пакетов упрощает использование и совместное использование библиотек исходного кода Node.js. npm —это стандартный диспетчер пакетов Node.js. Диспетчер пакетов npm упрощает установку, обновление и удаление библиотек.
- Что такое Express? Express — это серверная платформа веб-приложений, которую использует Node.js для создания веб-приложений. При использовании Express существует множество различных способов создания пользовательского интерфейса. Реализация, предоставляемая в этом руководстве, использует обработчик шаблонов по умолчанию генератора приложений Express, называемый Pug, для отрисовки внешнего интерфейса.
Необходимые компоненты
Обязательно установите следующие компоненты:
- Visual Studio 2022 версии 17.4 или более поздней версии с установленной рабочей нагрузкой ASP.NET и веб-разработки . Перейдите на страницу скачиваемых материалов Visual Studio, чтобы установить ее бесплатно. Если вам нужно установить рабочую нагрузку и у вас уже есть Visual Studio, перейдите в раздел Средства>Получить средства и компоненты. , после чего запустится Visual Studio Installer. Выберите рабочую нагрузку ASP.NET и разработка веб-приложений, а затем щелкните Изменить.
- npm (https://www.npmjs.com/), который входит в состав Node.js
- npx (https://www.npmjs.com/package/npx).
Создание своего приложения
- В окне запуска (чтобы открыть его, щелкните Файл>Окно запуска) выберите Создание нового проекта.

- Найдите Express в строке поиска в верхней части и выберите приложение JavaScript Express.

- Присвойте имена проекту и решению.
Просмотр свойств проекта
Параметры проекта по умолчанию позволяют выполнить сборку и отладку проекта. Но если вам нужно изменить параметры, щелкните правой кнопкой мыши проект в Обозреватель решений, выберите Свойства, а затем перейдите в раздел Сборка или Отладка.
Файл launch.json хранит параметры запуска, связанные с кнопкой Запуск на панели инструментов отладки. В настоящее время файл launch.json должен находиться в папке .vscode.
Сборка проекта
Выберите Сборка>Собрать решение, чтобы собрать проект.
Запуск приложения
Нажмите клавишу F5 или кнопку Запуск в верхней части окна, чтобы открыть командную строку.
- npm под управлением команды node ./bin/www
Проверьте наличие в консоли сообщений, например сообщения с указанием обновить версию Node.js.
Затем появится базовое приложение Express!
Отладка приложения
Теперь мы рассмотрим несколько способов отладки приложения.
Во-первых, если приложение по-прежнему работает, нажмите клавиши SHIFT +F5 или нажмите красную кнопку остановки в верхней части окна, чтобы остановить текущий сеанс. Возможно, вы заметите, что остановка сеанса закрывает браузер, показывающий приложение, но оставляет позади окна командной строки, выполняющего процесс Node. На данный момент вернитесь и закройте все задерживающиеся командные строки. Далее в этой статье описано, почему может потребоваться оставить процесс узла запущенным.
Отладка процесса узла
В раскрывающемся списке рядом с кнопкой «Пуск » вы увидите следующие параметры запуска:
- localhost (Edge)
- localhost (Chrome)
- Отладка Dev Env
- Запуск узла и браузера
Перейдите вперед и выберите параметр «Запустить узел» и «Браузер «. Теперь, прежде чем нажать клавишу F5 или снова нажать кнопку «Пуск «, установите точку останова в index.js (в папке маршрутов ), выбрав левую полоску перед следующей строкой кода: res.render(‘index’, < title: 'Express' >);
Вы также можете поместить курсор в строку кода и нажать клавишу F9 , чтобы переключить точку останова для этой строки.
Затем нажмите клавишу F5 или выберите «Начать отладку отладки», чтобы отладить>приложение.
Вы увидите, что отладчик приостанавливается в простой точке останова. Пока оно приостановлено, вы можете проверить состояние приложения. При наведении указателя мыши на переменные можно изучить их свойства.
Завершив проверку состояния, нажмите клавишу F5 , чтобы продолжить работу, и приложение должно загрузиться должным образом.
На этот раз при нажатии кнопки «Остановить» вы увидите, что окно браузера и командной строки закрываются. Чтобы узнать, почему ознакомьтесь с файлом launch.json.
Общие сведения о launch.json
Файл launch.json в настоящее время находится в папке VSCODE . Если в Обозреватель решений не отображается папка VSCODE, выберите «Показать все файлы«.
Если вы работали с Visual Studio Code раньше, файл launch.json будет выглядеть знакомым. Файл launch.json здесь работает так же, как и в Visual Studio Code, чтобы обозначить конфигурации запуска, используемые для отладки. Каждая запись указывает один или несколько целевых объектов для отладки.
Первые две записи являются записями браузера, и они должны выглядеть примерно так:
< "name": "localhost (Edge)", "type": "edge", "request": "launch", "url": "http://localhost:3000", "webRoot": "$\\public" >, < "name": "localhost (Chrome)", "type": "chrome", "request": "launch", "url": "http://localhost:3000", "webRoot": "$\\public" >
В приведенных выше записях type отображается тип браузера. Если вы запускаете только тип браузера в качестве единственного целевого объекта отладки, Visual Studio отлаживать только процесс внешнего браузера, а процесс node будет запущен без подключения отладчика, то есть любые точки останова, заданные в процессе узла, не будут привязываться.
После остановки сеанса процесс узла также продолжит выполняться. Он намеренно остается запущенным, когда браузер является целевым объектом отладки, так как если работа выполняется исключительно на интерфейсе, то при непрерывном выполнении внутреннего процесса упрощается рабочий процесс разработки.
В начале этого раздела вы закрыли окно командной строки для установки точек останова в процессе Node. Чтобы процесс узла был отлаживаемым, его необходимо перезапустить с присоединенным отладчиком. Если не отладочный процесс узла не выполняется, попытка запустить процесс Узла в режиме отладки (без перенастройки порта) завершится ошибкой.
edge В настоящее время и chrome являются единственными поддерживаемыми типами браузеров для отладки.
Третья запись в файле launch.json указывает node тип отладки и должен выглядеть примерно так:
< "name": "Debug Dev Env", "type": "node", "request": "launch", "cwd": "$/bin", "program": "$/bin/www", "stopOnEntry": true >
Эта запись запустит только процесс узла в режиме отладки. Браузер не будет запущен.
Четвертая запись, указанная в файле launch.json*, является следующей конфигурацией составного запуска.
Эта составная конфигурация совпадает с конфигурацией составного запуска vscode и позволяет отлаживать интерфейсную и серверную части. Вы можете увидеть, что он просто ссылается на отдельные конфигурации запуска для процессов узла и браузера.
В конфигурации запуска можно использовать множество других атрибутов. Например, можно скрыть конфигурацию из раскрывающегося списка, но при этом можно ссылаться, задав hidden атрибут в объекте presentation значение true .
< "name": "localhost (Chrome)", "type": "chrome", "request": "launch", "url": "http://localhost:3000", "webRoot": "$\\public", "presentation": < "hidden": true >>
Нажмите кнопку » Параметры » для списка атрибутов, которые можно использовать для улучшения возможностей отладки. Обратите внимание, что на данный момент поддерживаются только конфигурации запуска . Любая попытка использовать конфигурацию подключения приведет к сбою развертывания.
Создаем свой первый проект на Node JS
У меня есть товарищ и я ему помогаю советом как разбираться в премудростях разработки. Недавно я дал ему задание — создать свой первый проект на NodeJS и небольшое тестовое задание.
И тут я понял, что, помимо написания кода и реализации задачи, необходимо рассказать всё, что необходимо для написания хорошего проекта.
Я буду писать много очевидных и банальных вещей, но, я уверен, что вы тоже можете пропускать один из пунктов и не уделять ему должное внимание.
Создайте репозиторий для проекта
Первое — вам нужно создать репозиторий для проекта. Стандартом для разработки является git и есть много популярных сервисов github, bitbucket, gitlab. Просто выберите один из сервисов и пользуйтесь, они все хорошие.
- Привяжите ssh ключ вашей рабочей машины к аккаунту, это позволит работать с проектами по ssh-протоколу.
- При создании проекта объязательно настройте .gitignore, шаблоны для популярных языков сервисы предоставляют.
- Разберитесь с основными командами git-а: pull, push, add, commit, merge, rebase, status, diff, log, branch, checkout.
- У каждый команды есть рабочий процесс для git-а. Изучите один из подходов, например, git flow.
- Попробуйте использовать git “по взрослому”. Создавайте ветки и подветки, делайте мержи и ребейзы. Не бойтесь что-то сломать, это тестовый проект.
- Если вам нравится GUI, то присмотритесь к одному из них. Например, gitk.
- Почитайте про git книжку. Git Pro — одна из них.
- Посмотрите пару видео про git: git yandex.
- Не застревайте сильно на git-е, разберитесь в основах и двигайтесь дальше.
Создайте проект
Здесь, вроде, всё просто: команда npm init и проект создан. Для первого проекта стандартный пакетный менеджер npm будет отличным выбором, но почитать про yarn или pnpm.
- Изучите package.json файл, секция main, scripts вам понадобится, а отличие dependencies от devDependencies нужно понимать.
- Разберитесь с концепцией версионирования пакетов ..
- Попробуйте установить парочку популярных пакетов lodash или express. Поиграйте с версиями: сможете откатить пакет до нужной версии или быстро обновить все пакеты до акуальной версии?
- Присмотритесь к полезным утилитам: npm-check или npm-check-updates
- Попробуйте установить нужный пакет из репозитория или из локальной папки.
- Задание со звёздочкой. Попробуйте создать свой пакет, разберитесь с .npmingore файлом и с различными pre и post хуками npm-ма.
Качество кода
Для проекта вам нужно будет настроить linter или prettier. Я рекомендую eslint, но можно использовать prettier. Есть ещё editorconfig, я его добавляю в свои проекты.
- Используйте eslint init, он подскажет удобную для вас конфигурацию.
- Подключите один из готовых конфигов standard или airbnb. Для первого проекта это будет достаточно.
- Не стесняйтесь отключать или изменять правила, если они вам не нравятся. Но будьте рассудительными, некоторые правила повышают безопастность вашего проекта, их лучше не менять.
- У линтера есть куча плагинов, они помогут повысить качество вашего кода и спасут от ошибок. Например, import-plugin.
- Настройте вашу IDE для работы с eslint-ом. Например, в VSCode autofix на каждое сохранение файла помогает сразу писать красивый код.
- Разберитесь с опциями eslint. Например, опция cache может помочь не запускать каждый раз проверку всего кода.
- Добавьте все скрипты в package.json/scripts секцию. Скрипт lint и lint:fix там должен быть точно.
Тестирование
Может быть, тестирование вам сразу не понадобится, но лучше всё сразу настроить, чтобы не тратить время потом. Существует множество пакетов для тестирования кода: mocha, chai, jest, jasmine, tap, sinon. Они все хорошие, просто выберете те, который вам нравится. Может быть их будет несколько.
- Почитайте TDD и BDD подходы. Разберитесь чем отличается unit, integration и end-to-end тестирование.
- Всегда помните, что тестирование должно помогать вам разрабатывать, писать код без багов и вносить изменения в существующий код без страха. Не применяйте разработку через тестирование, если вам не понятно, зачем оно. Но разобраться надо.
- Подумайте, как лучше протестировать ваш проект, возможно вам будет достаточно написать несколько e2e-тестов. Ваша задача реализовать проект без багов, а не протестировать 100-процентов кода.
- Пишите код с мыслью “а как его можно протестировать?”.
- Заполните секцию в package.json test командой, которая запускает вашы тесты.
Настройка git hook
Небольшой, но важный пункт. После добавления в проект линтера и тестов вам может быть полезным настроить хуки гита. Хуки гита нужны для того, чтобы запускать какие-либо скрипты перед тем, как ваш код будет закоммичен или отправлен на сервер.
Для этой задачи пакет husky или pre-commit может подойти.
Разработка
Для разработки вам может или специальное окружение, которое можно создать через docker или утилита, которая будет перезапускать ваш проект в случае изменения кода, например, nodemon.
Скажу так, если начать разбираться ещё с докером, то свой первый проект можно не начать. Но почитать стоит. Например, вам может понадобится прикрутить какую-нибудь базу данных к проекту, проще это сразу сделать в докере.
В заключении
Мой товарищ, когда я кинул этот список, сказал, что ему тут разбираться минимум 1 неделю. Но эти знания потом можно перетаскивать из проекта в проект, дополняя новыми классными утилитами и подходами.
Настройка проекта Node с помощью Typescript

Node — это среда исполнения, позволяющая писать серверный код JavaScript. Она получила очень широкое распространение после своего выпуска в 2011 году. С ростом базы кода написание серверного кода JavaScript может представлять сложности в связи с характером языка JavaScript: динамичным и слабо типизированным.
Разработчики, переходящие на JavaScript с других языков, часто жалуются на отсутствие мощного статического типирования, но TypeScript позволяет устранить этот недостаток.
TypeScript — это типовой (опциональный) супернабор JavaScript, который может помочь со сборкой и управлением крупномасштабными проектами JavaScript. Его можно представить как JavaScript с дополнительными возможностями, включая мощное статическое типирование, компиляцию и объектно-ориентированное программирование.
Примечание. С технической точки зрения TypeScript является супернабором JavaScript, и это означает, что весь код JavaScript является корректным кодом TypeScript.
Перечислим некоторые преимущества использования TypeScript:
- Опциональная статическая типизация.
- Логическая обработка типов.
- Возможность использования интерфейсов.
В этом учебном модуле вы настроите проект Node с помощью TypeScript. Вы создадите приложение Express с помощью TypeScript и преобразуете его в компактный и надежный код JavaScript.
Предварительные требования
Перед началом прохождения этого модуля вам нужно будет установить Node.js на вашем компьютере. Для этого можно выполнить указания руководства Установка Node.js и создание локальной среды разработки для вашей операционной системы.
Шаг 1 — Инициализация проекта npm
Для начала создайте новую папку с именем node_project и перейдите в этот каталог.
Затем инициализируйте его как проект npm:
После запуска npm init вам нужно будет передать npm информацию о вашем проекте. Если вы разрешите npm принимать ощутимые значения по умолчанию, вы можете добавить флаг y , чтобы пропустить диалоги с запросом дополнительной информации:
Теперь пространство вашего проекта настроено, и вы можете перейти к установке необходимых зависимостей.
Шаг 2 — Установка зависимостей
Следующий шаг после инициализации базового проекта npm — установить зависимости, требующиеся для запуска TypeScript.
Запустите следующие команды из каталога вашего проекта для установки зависимостей:
Флаг -D — сокращенное обозначение опции: —save-dev . Более подробную информацию об этом флаге можно найти в документации npmjs.
Пришло время установить платформу Express:
Вторая команда устанавливает типы Express для поддержки TypeScript. Типы в TypeScript — это файлы, которые обычно имеют расширение .d.ts . Файлы используются для предоставления типовой информации об API, в данном случае структуры Express.
Этот пакет требуется, потому что TypeScript и Express являются независимыми пакетами. Без пакета @types/express у TypeScript нет способа узнавать типы классов Express.
Шаг 3 — Настройка TypeScript
В этом разделе мы настроим TypeScript и проверку соблюдения стандартов для TypeScript. TypeScript использует файл tsconfig.json для настройки опций компилятора для проекта. Создайте файл tsconfig.json в корне каталога проекта и вставьте следующий фрагмент кода:
tsconfig.json
"compilerOptions": "module": "commonjs", "esModuleInterop": true, "target": "es6", "moduleResolution": "node", "sourceMap": true, "outDir": "dist" >, "lib": ["es2015"] >
Давайте рассмотрим некоторые ключи во фрагменте кода JSON выше:
- module : указывает метод генерирования кода модуля. Node использует commonjs .
- target : указывает уровень языка на выходе.
- moduleResolution : помогает компилятору определить, на что ссылается импорт. Значение node имитирует механизм разрешения модуля Node.
- outDir : Это место для вывода файлов .js после транспиляции. В этом учебном модуле мы сохраним его как dist .
В качестве альтернативы созданию и заполнения файла tsconfig.json вручную можно запустить следующую команду:
Эта команда сгенерирует файл tsconfig.json с правильными комментариями.
Чтобы узнать больше о доступных опциях ключ-значение, можно использовать официальную документацию TypeScript, где приводятся разъяснения всех опций.
Теперь вы можете настроить проверку соответствия стандартам кода TypeScript для этого проекта. Откройте в терминале корневой каталог вашего проекта, который установлен в этом учебном модуле как node_project , и запустите следующую команду для генерирования файла tslint.json :
Откройте сгенерированный файл tslint.json и добавьте соответствующее правило no-console :
tslint.json
"defaultSeverity": "error", "extends": ["tslint:recommended"], "jsRules": >, "rules": "no-console": false >, "rulesDirectory": [] >
По умолчанию модуль проверки TypeScript предотвращает использование отладки через команды консоли , поэтому нужно явно предписать ему отключить правило по умолчанию no-console .
Шаг 4 — Обновление файла package.json
Сейчас вы можете запускать функции в терминале по отдельности или создать скрипт npm для их запуска.
На этом шаге мы создадим скрипт start , который выполнит компиляцию и транспиляцию кода TypeScript, а затем запустит полученное приложение .js .
Откройте файл package.json и обновите его соответствующим образом:
package.json
"name": "node-with-ts", "version": "1.0.0", "description": "", "main": "dist/app.js", "scripts": "start": "tsc && node dist/app.js", "test": "echo \"Error: no test specified\" && exit 1" >, "author": "", "license": "ISC", "devDependencies": "@types/express": "^4.16.1", "tslint": "^5.12.1", "typescript": "^3.3.3" >, "dependencies": "express": "^4.16.4" > >
В приведенном выше фрагменте кода мы обновили путь main и добавили команду start в раздел scripts. Если посмотреть на команду start , вы увидите, что вначале запускается команда tsc , а затем — команда node . При этом будет проведена компиляция, и сгенерированный вывод будет запущен с помощью node .
Команда tsc предписывает TypeScript скомпилировать приложение и поместить сгенерированный вывод .js в указанном каталоге outDir , как указано в файле tsconfig.json .
Шаг 5 — Создание и запуск базового сервера Express
Теперь TypeScript и модуль проверки настроены, и мы можем приступить к сборке модуля Node Express Server.
Вначале создайте папку src в корневом каталоге вашего проекта:
Затем создайте файл с именем app.ts :
На этом этапе структура каталогов должна выглядеть следующим образом:
├── node_modules/ ├── src/ ├── app.ts ├── package-lock.json ├── package.json ├── tsconfig.json ├── tslint.json
Откройте файл app.ts в предпочитаемом текстовом редакторе и вставьте следующий фрагмент кода:
import express from 'express'; const app = express(); const port = 3000; app.get('/', (req, res) => res.send('The sedulous hyena ate the antelope!'); >); app.listen(port, err => if (err) return console.error(err); > return console.log(`server is listening on $port>`); >);
Приведенный выше код создает сервер Node, прослушивающий порт 3000 на предмет запросов. Запустите приложение с помощью следующей команды:
При успешном выполнении сообщение будет зарегистрировано на терминале:
Теперь вы можете открыть в браузере адрес http://localhost:3000 и увидите следующее сообщение:

Откройте файл dist/app.js , и вы найдете в нем транспилированную версию кода TypeScript:
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) return (mod && mod.__esModule) ? mod : "default": mod >; >; Object.defineProperty(exports, "__esModule", value: true >); const express_1 = __importDefault(require("express")); const app = express_1.default(); const port = 3000; app.get('/', (req, res) => res.send('The sedulous hyena ate the antelope!'); >); app.listen(port, err => if (err) return console.error(err); > return console.log(`server is listening on $port>`); >); //# sourceMappingURL=app.js.map
Вы успешно настроили проект Node для использования TypeScript.
Заключение
В этом учебном модуле вы узнали, почему TypeScript полезен для написания надежного кода JavaScript. Также вы узнали о некоторых преимуществах работы с TypeScript.
Наконец, вы настроили проект Node с использованием структуры Express, но скомпилировали и запустили проект с помощью TypeScript.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.