В этой статье мы рассмотрим, как можно использовать Node.js в сочетании с Express для ускорения цикла разработки.

Мы начнем с некоторых основ Node.js, включая начальные этапы настройки с помощью npm, и создадим простой веб-сервер для разработки.

Начало работы с Node.js

Что такое Node.js?

Node.js – это платформа, построенная на основе среды выполнения Chrome JavaScript, позволяющая легко создавать быстрые и масштабируемые сетевые приложения. Node.js использует модель неблокирующего ввода-вывода, управляемую событиями, что делает его легким и эффективным, идеально подходящим для приложений реального времени, интенсивно использующих данные, которые работают на распределенных устройствах.

утилита нпм

Node.js поставляется в комплекте с утилитой npm, которая является официальным менеджером пакетов для Node.js и предоставляет интерфейс командной строки (CLI) для взаимодействия с онлайн-реестром для открытия -исходные проекты Node.js, модули, ресурсы и т. д. Вы можете найти его на http://npmjs.org.

Для получения документации по API посетите https://npmjs.org/doc/ или просто введите npm в своем терминале.

Установка node.js и npm

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

  • Пользователь Ubuntu/Debian может запускать apt-get install nodejs
  • Пользователи Mac/Homebrew могут запускать brew install node
  • Пользователи Windows или альтернативы могут загрузить бинарный файл с http://nodejs.org/
  • Используйте диспетчер версий узлов (NVM)

Начальная конфигурация

После установки мы можем, при желании, немного настроить npm. Идите вперед и введите эти команды в терминал, используя вашу собственную информацию. Таким образом, когда мы позже запустим некоторые команды npm, он уже будет знать, кто мы, и сможет автоматически заполнять для нас некоторую информацию.

npm set init.author.name "John Doe"
npm set init.author.email "[email protected]"
npm set init.author.url "http://johndoe.com"

Если вы не хотите публиковать модули узла в онлайн-реестре, вам нужно будет создать пользователя. Следующая команда запросит у вас адрес электронной почты и пароль, создаст или подтвердит пользователя в реестре npm и сохранит учетные данные в файле ~/.npmrc.

npm adduser

Создайте модуль Node.js

Модуль Node.js/npm — это обычный файл JavaScript с добавлением того, что он должен соответствовать спецификации модуля CommonJS. Это действительно не так сложно, как кажется. Модули Node работают в своей области, поэтому они не конфликтуют с другими модулями. Node, соответственно, предоставляет доступ к некоторым глобальным переменным, чтобы упростить взаимодействие модулей. Два основных элемента, которые нас здесь интересуют, — это запрос и экспорт. Вам нужны другие модули, которые вы хотите использовать в своем коде, и ваш модуль экспортирует все, что должно быть открыто для всех. Например:

var other = require('other_module');
module.exports = function() {
    console.log(other.doSomething());
}

Для начала давайте инициализируем наш новый модуль, выполнив команду init из утилиты npm. Эта команда задаст вам кучу вопросов, а затем запишет файл package.json. Именно этот файл эффективно превращает ваш код в пакет.

npm init

Посмотрите, что содержит файл; это довольно удобочитаемо. Более подробную информацию и объяснение содержимого файла package.json можно найти по адресу https://npmjs.org/doc/json.html. Наша первоначальная версия выглядит следующим образом, но мы будем обновлять ее по ходу дела.

{
  "name": "ZWebNode",
  "version": "1.0.0",
  "description": "A node Web application example",
  "main": "server.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Helder Rossa <[email protected]>"
}

Основной файл скрипта

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

Требования к модулю

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

Итак, для нашего примера мы будем использовать Express. Давайте использовать это:

npm install --save-dev express

Приведенные выше команды также создадут папку node_modules в каталоге вашего проекта, содержащую, в данном случае, зависимости Express. Следуя рекомендациям, мы хотим, чтобы папка node_modules не попадала в репозитории VCS.

Переключатель --save-dev указывает npm сохранить зависимость в файле package.json.

"devDependencies": {
    "express": "^4.12.3"
  }

Использование Express для обслуживания файлов

Теперь мы можем приступить к написанию кода. Создайте файл server.js для хранения кода веб-сервера. Это будет выглядеть примерно так.

var express = require('express'),
    http = require('http'),
    path = require('path'),
    app = express();
app.set('port', process.env.PORT || 9080);
// static files serving
app.use('/', express.static(path.join(__dirname, '/static')));
var server = http.createServer(app);
server.listen(app.get('port'), function()
{
    console.log('server listening on port ' + app.get('port'));
    console.log('>>> http://localhost:' + app.get('port') + '/');
});

И это все! Создайте каталог с именем static и поместите туда статическое веб-содержимое (html, css, js и т. д.) и начните программировать.

Файл Readme

Всегда полезно включить некоторую документацию в свой проект, поэтому я добавлю README.md, используя синтаксис уценки. Использование уценки — хорошая идея, потому что она будет хорошо отображаться как на Github, так и на npm.

ZWebNode
========
A Web application project using Node.js.
## Release History
* 1.0.0 Initial release

Отлично, проект завершен.