Node.JS для решения задач
Материал на этой странице устарел, поэтому скрыт из оглавления сайта.
В этом разделе предлагаются задачи по теме AJAX.
Конечно же, они требуют взаимодействия с сервером. Мы будем использовать серверную часть, написанную на JavaScript, на Node.JS.
Если вы не использовали Node.JS ранее – не беспокойтесь. Здесь нашей целью является преимущественно клиентская часть, поэтому прямо сейчас изучать Node.JS не обязательно. Серверные скрипты уже готовы. Нужно только поставить Node.JS и модули, чтобы их запускать.
Установка
Для настройки окружения будет достаточно сделать два шага:
- Сначала установите сам сервер Node.JS. Если у вас Unix-система – рекомендуется собрать последнюю версию из исходников, а также NPM. Вы справитесь. Если Windows – посетите сайт https://nodejs.org или скачайте установщик (32 или 64-битный) с расширением .msi из https://nodejs.org/dist/latest/.
- Выберите директорию, в которой будете решать задачи. Запустите в ней:
npm install node-static
Проверка
-
Создайте какую-нибудь поддиректорию и в ней файл server.js с таким содержимым:
var http = require('http'); var static = require('node-static'); var file = new static.Server('.'); http.createServer(function(req, res) < file.serve(req, res); >).listen(8080); console.log('Server running on port 8080');
Server running on port 8080
Нельзя запустить больше одного сервера одновременно!
При попытке запуска двух серверов (например, в разных консолях) – будет конфликт портов и ошибка.
- Откройте в браузере http://127.0.0.1:8080/server.js. Должно вывести код файла server.js .
Если всё работает – отлично, теперь вы готовы решать задачи.
Примеры
В примерах, за редким исключением, для краткости будет приводиться не полный скрипт на Node.JS, а только код обработки запроса.
var http = require('http'); var url = require('url'); var querystring = require('querystring'); function accept(req, res) < res.writeHead(200, < 'Content-Type': 'text/plain', 'Cache-Control': 'no-cache' >); res.end("OK"); > http.createServer(accept).listen(8080);
…Будет только функция accept , или даже только её содержимое:
res.writeHead(200, < 'Content-Type': 'text/plain', 'Cache-Control': 'no-cache' >);
Основные методы
В функции accept используются два объекта:
- req – объект запроса («request»), то есть то, что прислал клиент (обычно браузер), из него читаем данные.
- res – объект ответа («response»), в него пишем данные в ответ клиенту.
- вызов res.writeHead(HTTP-код, [строка статуса], ) пишет заголовки.
- вызов res.write(txt) пишет текст в ответ.
- вызов res.end(txt) – завершает запрос ответом.
Демо
Кроме просмотра кода, можно будет попробовать и скачать различные демки.
Вот пример демо, можете попробовать нажать на кнопку – она работает.
Если хотите посмотреть пример поближе и поиграть с ним – скачайте архив (кнопка справа-сверху в примере выше), он будет работать и на вашем Node.JS.
Больше о Node.JS
Больше о сервере Node.JS можно узнать в скринкасте по Node.JS.
как запустить сервер node js
Для запуска сервера Node.js нужно выполнить несколько шагов:
- Установить Node.js на компьютер, если он еще не установлен. Скачать установщик можно на официальном сайте Node.js.
- Создать файл с расширением .js , в котором будет содержаться код для запуска сервера. Например, создадим файл server.js .
- В файле server.js нужно написать код для создания сервера. Вот простой пример:
const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello, World!\n'); >); server.listen(port, hostname, () => console.log(`Server running at http://$hostname>:$port>/`); >);Этот код создает сервер на локальном хосте (127.0.0.1) и порту 3000. Когда сервер запущен, он будет отвечать на любые запросы с сообщением «Hello, World!».
- Запустить сервер нужно в командной строке (терминале) из папки, где находится файл server.js . Например, если файл находится в папке myproject , то нужно перейти в эту папку командой cd myproject , а затем запустить сервер командой node server.js .
- Если все настроено правильно, то в консоли должно появиться сообщение «Server running at http://127.0.0.1:3000/ «, а в браузере можно открыть страницу по адресу http://127.0.0.1:3000/ и увидеть сообщение «Hello, World!».
как запустить приложение node js
Для запуска приложения из консоли следуйте такому порядку у вас должен быть установлен Node.js . Его можно загрузить с официального сайта https://nodejs.org .
- Перейдите в папку с вашим приложением с помощью команды cd , например:
cd my-app- Установите все зависимости, используя команду npm install :
install- Запустите приложение с помощью команды node , указав файл, в котором находится код приложения:
- Если ваше приложение настроено на работу с локальным сервером, оно будет доступно по адресу http://localhost:3000 (или с другим настроенным номером порта).
Руководство. Node.js для начинающих
Если вы новичок в использовании Node.js, это руководство поможет вам начать с некоторых основ.
- Использование Node.js в Visual Studio Code
- Создание первого веб-приложения Node.js с помощью Express
- Попробуйте использовать модуль Node.js
Необходимые компоненты
- Установка Node.js в Windows или в подсистеме Windows для Linux.
Если вы впервые пробуете Node.js, рекомендуем выполнить установку непосредственно в Windows. Дополнительные сведения см. в статье Выбор между установкой Node.js в Windows и подсистеме Windows для Linux.
Использование Node.js в Visual Studio Code
Если вы еще не установили Visual Studio Code, вернитесь к предыдущему разделу предварительных требований и выполните действия по установке, связанные с Windows или WSL.
- Откройте командную строку и создайте новый каталог с помощью команды mkdir HelloNode , а затем введите каталог: cd HelloNode .
- Создайте файл JavaScript с именем «app.js» и переменной с именем «msg» в: echo var msg > app.js
- Откройте каталог и файл app.js в VS Code с помощью команды code . .
- Добавьте простую строковую переменную («Hello World»), а затем отправьте содержимое строки в консоль, введя его в файле «app.js»:
var msg = 'Hello World'; console.log(msg);Обратите внимание, что при вводе console в файл «app.js», VS Code отображает поддерживаемые параметры, связанные с объектом console , который можно выбрать из использования IntelliSense. Попробуйте поэкспериментировать с Intellisense, используя другие объекты JavaScript.
Создание первого веб-приложения Node.js с помощью Express
Express — это минимальная, гибкая и оптимизированная платформа Node.js, которая упрощает разработку веб-приложения, которое может обслуживать несколько типов запросов, таких как GET, PUT, POST и DELETE. Express поставляется с генератором приложений, который автоматически создает архитектуру файлов для приложения.
Чтобы создать проект с помощью Express.js, выполните следующие действия.
- Откройте командную строку (командная строка, Powershell или любой другой вариант).
- Создайте новую папку проекта: mkdir ExpressProjects и введите этот каталог: cd ExpressProjects
- Используйте Express для создания шаблона проекта HelloWorld: npx express-generator HelloWorld —view=pug
Примечание. Мы используем команду npx , чтобы выполнить пакет Node Express.js без фактической установки (или временно установить его в зависимости от того, как вы хотите его представить). Если вы попытаетесь использовать команду express или проверить установленную версию Express с помощью: express —version , вы получите ответ, о том, что Express не удается найти. Если вы хотите глобально установить Express, чтобы применять его на постоянной основе, используйте: npm install -g express-generator . Список пакетов, установленных npm, можно просмотреть с помощью npm list . Они будут перечислены по глубине (количество вложенных каталогов в глубину). Установленные пакеты будут иметь глубину 0. Зависимости пакета будут иметь глубину 1, дополнительные зависимости на уровне глубины — 2 и т. д. Дополнительные сведения см. в статье Различие между npx and npm на сайте StackOverflow.
- bin . Содержит исполняемый файл, который запускает приложение. Он запускает сервер (через порт 3000, если не указана альтернатива) и настраивает базовую обработку ошибок.
- public . Содержит все общедоступные файлы, включая файлы JavaScript, таблицы стилей CSS, файлы шрифтов, изображения и другие ресурсы, необходимые пользователям при подключении к веб-сайту.
- routes . Содержит все обработчики маршрутов для приложения. В этой папке автоматически создаются два файла, index.js и users.js , которые служат примерами разделения конфигурации маршрута приложения.
- views . Содержит файлы, используемые модулем шаблонов. Express настроен на поиск подходящего представления при вызове метода преобразования. Обработчик шаблонов по умолчанию — Jade, но Jade является устаревшим в сравнении с Pug, поэтому для изменения подсистемы просмотра (шаблона) мы использовали флаг —view . Параметры флага —view и другие можно увидеть, используя express —help .
- app.js . Начальная точка приложения. Она загружает все и начинает обслуживать запросы пользователей. По сути, это связующий элемент, который содержит все части вместе.
- package.json . Содержит описание проекта, диспетчер скриптов и манифест приложения. Его основное назначение заключается в отслеживании зависимостей приложения и их соответствующих версий.
npm installnpx cross-env DEBUG=HelloWorld:* npm startСовет Часть DEBUG=myapp:* приведенной выше команды означает, что вы указываете Node.js включить ведение журнала в целях отладки. Не забудьте заменить «myapp» именем своего приложения. Имя приложения можно найти в файле package.json в свойстве «name». Использование npx cross-env устанавливает переменную среды DEBUG в любом терминале, но ее также можно задать с помощью конкретного терминала. Команда npm start сообщает npm о необходимости запуска скриптов в файле package.json .

- Теперь вы можете просмотреть работающее приложение, открыв веб-браузер и перейдя по адресу: localhost:3000
- Теперь, когда приложение HelloWorld Express выполняется локально в браузере, попробуйте внести изменения, открыв папку «views» в каталоге проекта и выбрав файл «index.pug». После открытия измените h1= title на h1= «Hello World!» и выберите Сохранить (Ctrl+S). Просмотрите изменения, обновив URL-адрес localhost:3000 в веб-браузере.
- Чтобы остановить запуск приложения Express, в терминале введите: CTRL+C
- В командной строке откройте интерфейс командной строки Node.js. После входа вы увидите подсказку > , сообщающую вам, что вы используете Node.js: node
- Чтобы определить операционную систему, используемую в данный момент (которая должна возвращать ответ, сообщающий о том, что вы работаете под Windows), введите: os.platform()
- Чтобы проверить архитектуру ЦП, введите: os.arch()
- Чтобы просмотреть доступные в системе процессоры, введите: os.cpus()
- Оставьте интерфейс командной строки Node.js, введя .exit или дважды нажав CTRL+C.
Использование модуля Node.js
В Node.js есть инструменты для разработки серверных веб-приложений, некоторые из них встроены и многие другие доступны через npm. Эти модули могут помочь во множестве задач:
| Средство | Используется для |
|---|---|
| gm, sharp | Обработка изображений, включая редактирование, изменение размера, сжатие и т. д., непосредственно в коде JavaScript |
| PDFKit | Поколение PDF |
| validator.js | Проверка строки |
| imagemin, UglifyJS2 | Минификация |
| spritesmith | Создание листа спрайтов |
| winston | Ведение журналов |
| commander.js | Создание приложения командной строки |
Давайте воспользуемся встроенным модулем ОС для получения сведений об операционной системе компьютера:
Совет Модуль OS Node.js можно использовать для выполнения таких действий, как проверка платформы и возврата переменной для конкретной платформы: Win32/.bat для разработки Windows, дарвин/.sh для Mac/unix, Linux, SunOS и т. д. (например, var isWin = process.platform === «win32»; ).