Перейти к содержимому

Npm http server как запустить

  • автор:

Npm http server как запустить

Этот сервер вы сможете установить после установки Node.js Http-server можно установить менеджером пакетов npm из пакета Node.js, а можно протестировать без установки с помощью утилиты npx.

Создайте папку для сервера, например www в своём рабочем каталоге, поместите туда файл favicon.ico и index.html. Http-server (веб-сервер) поддерживает структуру каталогов. Можно создать подпапки. Перейдите в папку www и запускайте сервер:

dior@debian:~/www$ npx http-server npx: установлен 27 в 6.113s Starting up http-server, serving ./ Available on: http://127.0.0.1:8080 http://192.168.1.12:8080 Hit CTRL-C to stop the server [2020-03-06T14:07:12.101Z] "GET /" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 YaBrowser/19.12.3.332 (beta) Yowser/2.5 Safari/537.36" (node:457) [DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers is deprecated [2020-03-06T14:07:12.173Z] "GET /css/main.css" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 YaBrowser/19.12.3.332 (beta) Yowser/2.5 Safari/537.36" [2020-03-06T14:07:12.183Z] "GET /js/flame.js" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 YaBrowser/19.12.3.332 (beta) Yowser/2.5 Safari/537.36" [2020-03-06T14:07:12.211Z] "GET /favicon.ico" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 YaBrowser/19.12.3.332 (beta) Yowser/2.5 Safari/537.36"

Для экспериментов предлагаем наши файлы (пути указаны относительно папки www в которой запущен сервер):

   charset="utf-8" />  href="/css/main.css" rel="stylesheet" />   id="body"> Привет мир!  src="/js/flame.js" type="text/javascript">  

Важно: для этого сервера все относительные пути к файлам, указанным в html файле считаются относительными корня сервера (в нашем случае папка www).

body  font-size: 1000%;  text-align: center;  background-color: midnightblue;  color: moccasin;  text-shadow: red -6px 6px 8px; > 
i=0; style="color: #0664d5;">1; j=0; jd=1; k=0; kd=1; setInterval("animate()", 80); function animate()< body.style.textShadow = i+'px '+j+'px '+k+'px red' i=i+id; j=j+jd; k=k+kd; if (i>23) style="color: #0664d5;">1; if (i27) style="color: #0664d5;">1; if (j>19) jd=-1; if (j17) jd=1; if (k>31) kd=-1; if (k13) kd=1; >

И, вы в праве получить результат:

Установка сервера http-server:

sudo npm install -g http-server /usr/local/lib/nodejs/node-v12.16.1-linux-x64/bin/http-server -> /usr/local/lib/nodejs/node-v12.16.1-linux-x64/lib/node_modules/http-server/bin/http-server /usr/local/lib/nodejs/node-v12.16.1-linux-x64/bin/hs -> /usr/local/lib/nodejs/node-v12.16.1-linux-x64/lib/node_modules/http-server/bin/http-server + Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript..1 added 27 packages from 35 contributors in 8.349s

Посмотрим параметры запуска этого веб-сервера:

http-server --help usage: http-server [path] [options] options: -p --port Port to use [8080] -a Address to use [0.0.0.0] -d Show directory listings [true] -i Display autoIndex [true] -g --gzip Serve gzip files when possible [false] -b --brotli Serve brotli files when possible [false] If both brotli and gzip are enabled, brotli takes precedence -e --ext Default file extension if none supplied [none] -s --silent Suppress log messages from output --cors[=headers] Enable CORS via the "Access-Control-Allow-Origin" header Optionally provide CORS headers list separated by commas -o [path] Open browser window after starting the server. Optionally provide a URL path to open the browser window to. -c Cache time (max-age) in seconds [3600], e.g. -c10 for 10 seconds. To disable caching, use -c-1. -t Connections timeout in seconds [120], e.g. -t60 for 1 minute. To disable timeout, use -t0 -U --utc Use UTC time format in log messages. --log-ip Enable logging of the client's IP address -P --proxy Fallback proxy if the request cannot be resolved. e.g.: http://someurl.com --username Username for basic authentication [none] Can also be specified with the env variable NODE_HTTP_SERVER_USERNAME --password Password for basic authentication [none] Can also be specified with the env variable NODE_HTTP_SERVER_PASSWORD -S --ssl Enable https. -C --cert Path to ssl cert file (default: cert.pem). -K --key Path to ssl key file (default: key.pem). -r --robots Respond to /robots.txt [User-agent: *\nDisallow: /] --no-dotfiles Do not show dotfiles -h --help Print this list and exit. -v --version Print the version and exit.

Запуск веб-сервера http-server из корневой папки сайта:

dior@debian:~/www$ http-server Starting up http-server, serving ./ Available on: http://127.0.0.1:8080 http://192.168.1.12:8080 Hit CTRL-C to stop the server [2020-03-06T14:20:07.027Z] "GET /" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 YaBrowser/19.12.3.332 (beta) Yowser/2.5 Safari/537.36" [2020-03-06T14:20:07.052Z] "GET /css/main.css" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 YaBrowser/19.12.3.332 (beta) Yowser/2.5 Safari/537.36" [2020-03-06T14:20:07.055Z] "GET /js/flame.js" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 YaBrowser/19.12.3.332 (beta) Yowser/2.5 Safari/537.36" [2020-03-06T14:20:07.100Z] "GET /favicon.ico" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 YaBrowser/19.12.3.332 (beta) Yowser/2.5 Safari/537.36"
  • Вы здесь:
  • Главная
  • Web
  • Node.js http-server
  • Фигуры Лиссажу
  • Path2D на canvas
  • Контуры на canvas
  • Прямоугольники на canvas
  • Canvas и context
  • 2048 на JavaScript
  • Mines v2 на JavaScript
  • Игра flip-flop на JavaScript
  • Игровое поле на JavaScript
  • Игра Memory на JsavaScript
  • Игра Где ест уж на JavaScript
  • Mines на JavaScript
  • Игра Быки и коровы на JavaScript
  • Как установить пароль доступа к папке сайта
  • Виртуальный хостинг в Apache
  • SSL сертификат от freessl.org
  • SSL сертификат от freessl.space
  • Подсветка кода AVR Ассемблера
  • Вставить в Joomla видео или код
  • Цикл for.. in
  • Лучше чем МЭШ
  • JavaScript код
  • JavaScript Объектная модель
  • Язык JavaScript
  • Метки в CMS Joomla
  • Цветная подсветка примеров кода на сайте
  • Php web-сервер
  • Python http.server
  • Node.js http-server
  • Node.js статический web-сервер
  • Busybox httpd web-сервер
  • Установка Node.JS
  • Joomla всплывающие картинки
  • Лог файлы сервера Apache2
  • Установка LAMP сервера на Armbian
  • Apache установка модуля SSL
  • Создаём самодельный SSL сертификат
  • Установка SSL сертификата на сервер Apache 2
  • SSL сертификат для HTTPS бесплатно
  • Мой новый WEB server
  • Author Login
  • Карта сайта

© 2024 Системный интегратор

Запуск HTTP-сервера и выдача HTML-файла

Node не только содержит возможность обрабатывать JS-файлы, как мы только что сделали, он также может создать HTTP-сервер. Мы собираемся рассмотреть создание HTTP-сервера с Node-фреймворком Express для обработки HTML-файла.

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

Давайте придерживаться того же приложения, добавив фреймворк Express с выдачей HTML-файла. Нам понадобятся те же файлы (package.json, server.js) и к ним мы добавим новый файл index.html.

Express: Node-фреймворк

Одним из самых больших преимуществ Node является то, что он содержит поддержку множества пакетов. Сообщество отправляет много пакетов в npm и на момент написания в нём хранится 129257 пакетов, которые загрузили свыше 17694831 раз за последний день. Это большое достижение!

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

Вы, возможно, слышали о Grunt, Gulp или даже препроцессорах CSS вроде Less — всё это может быть пакетом.

Express — лёгкая платформа для создания веб-приложений с использованием Node.js. Express помогает организовать веб-приложение на стороне сервера. Сайт ExpressJS описывает его как «минимальной и гибкий Node-фреймворк для веб-приложений».

Express скрывает много внутренней работы Node, которая позволяет вам погрузиться в код приложения, получать всякие штуки и работать намного быстрее. Он прост для изучения и ещё даёт вам немного гибкости с его структурой.

Существует причина, почему в настоящее время это самый популярный фреймворк для Node. Вот несколько больших имён использующих Express:

Для просмотра полного списка зайдите на эту страницу.

Express поставляется с несколькими замечательными возможностями, которые добавят лёгкости в вашу разработку:

  • маршрутизация;
  • обработка запросов;
  • настройки приложения;
  • связующее программное обеспечение.

Не волнуйтесь, если эти термины являются для вас новыми. Просто знайте, что Express делает разработку намного проще и работать с ним в радость.

Установка Express

Пакеты для конкретного приложения Node определяются в package.json. Для получения установленных пакетов вы можете использовать один из двух методов:

  • Метод 1: Написать пакет в package.json.
  • Метод 2: В командной строке использовать npm install.

Мы собираемся использовать второй метод. Перейдите в командную строку и наберите:

$ npm install express --save

Модификатор —save сообщает npm, что он должен записать этот пакет в ваш файл package.json. Если вы выполните эту команду и посмотрите файл package.json, то заметите, что пакет появился в разделе dependencies. Вы также заметите, что была создана новая папка с именем node_modules. В ней Node хранит пакеты для конкретного проекта.

Меняться проектами между разработчиками и сотрудниками очень легко. Просто отправьте другим пользователям ваш проект и они запустят npm install чтобы установить всё из раздела dependencies.

Поскольку у нас уже есть Node и готов Express, используем их для создания HTTP-сервера и выдачи HTML-файла нашим пользователям.

Создание HTTP-сервера и отправка HTML-файла

Начнём с лёгкой части на нашем пути — с HTML-файла. В проекте создайте новый файл index.html и поместите внутрь следующее:

    Моё Node-приложение!   body Моё приложение! 

Мы будем ссылаться на CSS из фреймворка Bootstrap через Bootstrap CDN, это поможет нам быстро сделать стилизацию для этой демонстрации.

Двинемся вперёд и создадим наш HTTP-сервер в Node с помощью Express. Удалите всё из файла server.js и добавьте то что нам понадобится:

// берём Express var express = require('express'); // создаём Express-приложение var app = express(); // создаём маршрут для главной страницы // http://localhost:8080/ app.get('/', function(req, res) < res.sendfile('index.html'); >); // запускаем сервер на порту 8080 app.listen(8080); // отправляем сообщение console.log('Сервер стартовал!');

Кроме этого файла больше ничего не требуется, чтобы использовать Express для запуска HTTP-сервера и отправки HTML-файла!

require() является основным путём вызова пакета в Node. После создания Express-приложения в app , мы можем определить маршрут с помощью переменной HTTP. app.get() создаёт GET маршрут /.

При создании маршрутов, мы всегда будем иметь доступ к req (запрос) и res (ответ). Запрос содержит информацию из браузера. Ответ — это то, что мы отправим обратно пользователю. Мы используем sendfile() , но гораздо больше вещей можно сделать, отправляя данные обратно в формате JSON с помощью res.json() .

Сервер запускается через app.listen() и туда же передаётся желаемый порт 8080.

Чтобы убедиться что всё работает, перейдите в командную строку, чтобы обработать этот файл и запустить сервер.

$ nodemon server.js

Теперь мы можем посмотреть на наш сайт в браузере по адресу http://localhost:8080.

Всякий раз, когда мы запускаем сервер с Node, он будет размещён по адресу http://localhost:НОМЕР_ПОРТА.

Это очень лёгкий и быстрый способ создать HTTP-сервер и начать разработку. Node и Express могут применяться для создания удивительных приложений или при необходимости они просто запускают простой сервер для работы.

Отлично! Мы уже много сделали с Node:

  • установили Node;
  • обработали очень простой файл;
  • использовали npm для установки пакета;
  • создали HTTP-сервер с Express;
  • отобразили HTML-файл.

Давайте сделаем следующий шаг и создадим приложение, которое на самом деле показывает соответствующие данные.

Node.JS, NPM Package — Как запустить локальный сервер коммандой npm start?

Есть веб-страница, лежащая в папке «webdir».
Папка «webdir» находится в папке «server». В папке «server» через консоль был создан package.json файл (командой npm init ).
В ту же папку «server» был установлен http сервер (командой npm install http-server ). Теперь я могу зайти в консоле в папку «webdir» и командой npm node [директория к файлу bin, в моем случае: (. )/node_modules/http-server/bin] запустить локальный сервер и открыть мою веб-страницу в браузере по адресу localhost:8080 Вопрос: Как сделать так, чтобы, скачав NPM package с веб страницей и сервером, можно было запустить сервер (и увидеть сайт) одной командой — npm start ? Должен ли я создать в папке «server» JS файл с именем start.js, который будет вводить в консоль команду node (. )/node_modules/http-server/bin и открывать после этого страницу по адресу localhost:8080 ? Или это следует делать иначе? Только осваиваю NodeJS и NPM, буду благодарен за разъяснение.

Отслеживать
задан 12 авг 2016 в 14:21
1,075 2 2 золотых знака 17 17 серебряных знаков 33 33 бронзовых знака
12 авг 2016 в 14:24

@Grundy, спасибо, то есть я должен сначала установить http сервер, а потом прописать ту же комманду «node /node_modules/http-server/bin» при создании package.json файла, верно?

12 авг 2016 в 14:27

вообще, как именно должна выглядеть команда не могу сказать, но прописать ее надо в какое-то свойство scripts

Запуск сервера на NodeJS

В этой статье рассмотрен способ организации веб сервера на NodeJS. Для этого используется необходимо использовать модуль «http». В этот модуль входит метод «createServer», который позволяет возвращать различную информацию в ответах. Через него можно задать как заголовки ответа, так и содержание страницы.

Первое что получает пользователь при открытии страницы сайта — это «заголовки» от сервера. В них содержится техническая информация о запрашиваемой странице, о типе её содержания, о размере и других параметрах, включая информацию о статусе ответа сервера. Заголовки можно установить методами «statusCode» и «setHeader». А содержимое страницы задаётся с помощью метода «write».

Попробуем привести простейший пример и разобраться со всем по порядку:

let http = require('http'); http.createServer(function(request, response) < response.statusCode = 200; response.setHeader('Content-Type' : 'text/html'); response.write('Тише, мыши, кот на крыше'); response.end(); >).listen(80);

В параметре метода «createServer» записывается функция с двумя аргументами — принимаемыми от пользователя к серверу (request) и передаваемыми от сервера к пользователю (responce) данными. Эта функция выполняется для каждого пользователя отдельно. То есть каждый посетитель сайта при запросе получит свой результат работы этой функции.

Учтите, что если внутри функции в параметре «createServer» использовались переменные, которые определялись вне неё, то их значение будет у всех пользователей одинаковым. То есть если один изменит его, то все остальные тоже увидят изменённое значение.

В этом примере NodeJS ожидает запроса через TCP порт номер 80 (в конце примера можно увидеть «listen(80)»). А в ответе сервера с помощью метода «setHeader» должен быть отправлен заголовок ‘Content-Type’ : ‘text/html’ и с помощью метода «write» содержание страницы равное «Тише, мыши, кот на крыше». Метод «statusCode» добавляет заголовок с числовым кодом ответа сервера (200 — всё в порядке, 404 — нет такой страницы). Проверим работу этого примера.

Для проверки необходимо запустить этот скрипт в консоли сервера. Делается это обычным способом (пишется «node» и относительный/абсолютный путь к файлу, который нужно запустить):

node script.js

После запуска ничего не будет выведено в консоль, но скрипт не будет остановлен. Скрипт войдёт в метод «createServer» и начнёт бесконечное выполнение (пока администратор сервера сам его не прервёт через Ctrl+C). Во время выполнения этого бесконечного цикла обратиться к серверу через браузер, к нужному 80-ому порту (это стандартный порт для сайтов без SSL шифрования). Вернётся страница с содержанием «Тише, мыши, кот на крыше».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *