Дополнительно
Использование node.js в качестве простого веб-сервера
Я хочу запустить очень простой HTTP-сервер. Каждый GET-запрос к example.com
должен получать index.html
, но как обычную HTML-страницу (т.е. так же, как при чтении обычных веб-страниц).
Используя приведенный ниже код, я могу прочитать содержимое index.html
. Как передать index.html
как обычную веб-страницу?
var http = require('http');
var fs = require('fs');
var index = fs.readFileSync('index.html');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end(index);
}).listen(9615);
Одно из предложений ниже является сложным и требует написания строки get
для каждого ресурсного файла (CSS, JavaScript, изображения), который я хочу использовать.
Как я могу обслужить одну HTML-страницу с некоторыми изображениями, CSS и JavaScript?
1064
20
Вы можете использовать подключение и ServeStatic с Node.js для этого:
$ НПМ установить подключить обслуживать-статический
ВАР подключения = требуют('подключения'); ВАР serveStatic = требуют('служить-статическое'); подключиться().использовать(serveStatic(__каталог)).слушать(8080, функция(){ консоль.журнал('сервер работает на 8080...'); });
узел $ server.js
Теперь вы можете перейти к
http://localhost:8080/yourfile.html
Простой Node.js сервер-это просто:
Сейчас вы можете запустить сервер с помощью следующей команды:
Если вы're через НПМ 5.2.0 или новее, вы можете использовать HTTP-сервер без установки с справку по NPX`. Это'т рекомендован для использования в производстве, но является отличным способом, чтобы быстро сделать сервер работает на localhost.
Или, вы можете попробовать это, которые открывает браузер и позволяет CORS-запросов:
Дополнительные параметры, проверьте документация для HTTP-сервер` на GitHub, или выполнить:
Много других приятных особенностей и мозг мертв-простое развертывание для NodeJitsu.
Характеристика Вилки
Конечно, вы можете легко пополнять собственными вилкой. Вы можете найти его's уже сделано в одной из существующих 800+ вилы этого проекта:
Свет Сервере: Авто Освежающая Альтернатива
Хорошая альтернатива с HTTP-сервера
[
свет-сервера`](https://www.npmjs.com/package/light-server). Он поддерживает файл просмотр и автоматическое обновление и многие другие возможности.Добавить в контекстное меню папки в Проводнике Windows
Простой сервер в формате JSON остальные
Если вам нужно создать простой сервер остальное для проекта прототипе JSON с сервера может быть то, что вы'вновь ищу.
Автоматический Освежающий Редакторы
Большинство веб-страниц редакторы и инструменты IDE теперь включает веб-сервер, который будет смотреть ваши исходные файлы и автоматическое обновление вашей веб-страницы, когда они меняются.
Я использую сервер с помощью Visual Studio кода.
В открытые исходники текстовый редактор скобки также включает в себя NodeJS статический веб-сервер. Достаточно открыть любой html-файл в скобках, нажмите на "просмотр в реальном времени" и он начинает статический сервер и открывает браузер на странице. Браузер *автоматическое обновление при редактировании и сохранении файла HTML. Это особенно полезно для тестирования адаптивных веб-сайтов. Откройте HTML-страницу в разных браузерах/размеров окон/приборы. Сохранить HTML страницу и сразу увидеть, если ваш адаптивный вещи работают, как они все* автоматическое обновление.
Разработчики Приложения PhoneGap
Если вы'повторного кодирования гибридного мобильного приложения, Вы можете быть заинтересованы, чтобы знать, что он команда вышла на автоматическое обновление концепции на доске с их новыми PhoneGap Приложение. Это универсальное мобильное приложение, которое может загружать файлы в HTML5 с сервера во время разработки. Это очень ловкий трюк, поскольку теперь вы можете пропустить медленной компиляции/развернуть в цикл разработки гибридных мобильных приложений, Если вы'ре изменения в JS и CSS/HTML-файлов — это то, что вы'снова делаешь большую часть времени. Они также обеспечивают статические веб-NodeJS сервер (запустить
помощью PhoneGap служить
), который обнаруживает изменения в файлах.Помощью PhoneGap + Сенча Touch Разработчики
Я'вэ сейчас широко адаптирован статический сервер &амп помощью PhoneGap; PhoneGap приложение разработчика для Сенча Touch & jQuery мобильных разработчиков. Проверить его на Сенча Touch живые. Поддерживает --в QR QR-коды и ... localtunnel, что прокси сервером статического с компьютера на URL-адрес за пределами брандмауэра! Тонн использует. Массивное ускорение для гибридных мобильных разработчиков.
Кордова + Основы Разработчики Ионные
Локальный сервер с функцией автоматического обновления выпекаются в
инструмент ионные
. Просто запуститеионные служить
из папки приложения. Еще лучше ...ионные служить --лаборатории
для просмотра автоматическое обновление бок о бок видом на платформах iOS и Android.Проверить это суть. Я'м воспроизводя его здесь для справки, но суть регулярно обновляется.
Обновление
Суть работает с CSS и js файлов. Я'вэ использовал его сам. Используя прочитанный/напишите в "бинарных и" режим, это'т проблема. Это просто означает, что файл не'т интерпретируется как текст-файл библиотеки и не имеет отношения к контент-тип, возвращаемый в ответ.
Проблема с ваш код вы'вновь всегда возвращая контент-типа "в текст/равнина и". Приведенный выше код не возвращает какой-либо контент-тип, но если вы're просто использовать его для HTML, CSS и JS, браузер может определить те просто прекрасно. Нет содержания-типа лучше, чем неправильный.
Как правило, контент-тип конфигурации веб-сервера. Поэтому я'м извините, если это не'т решить проблему your, но он работал для меня, как простого сервера разработки и думал, что это может помочь некоторым другим людям. Если вам нужен грамотный контент-типов в ответ, вы должны явно определить их как joeytwiddle или использовать библиотеку как подключить, что имеет разумные значения по умолчанию. Хорошая вещь об этом является то, что она's простое и самодостаточное (без зависимостей).
Но я чувствую, ваш вопрос. Так вот-это комбинированное решение.
Вы Don'т необходимость экспресс. Вы Don'т нужно подключить. Node.js делает протокол HTTP изначально. Все, что вам нужно сделать, это вернуть файл зависит от запроса:
Более полный пример, что гарантирует запросы могут'т открыть файлы под базу-каталог и не правильную обработку ошибок:
Я думаю, что часть, которую вы сейчас упускаете, это то, что вы посылаете:
Если вы хотите, чтобы веб-браузер отобразил HTML, вы должны изменить это на:
Шаг 1 (в командной строке [я надеюсь, что вы CD в папке]) :
НПМ установить экспресс
Шаг 2: Создание server.js файл
Обратите внимание, что вы должны добавить слишком WATCHFILE (или использовать nodemon). Выше код-это только для простого соединения с сервером.
Шаг 3:
server.js узел " или " server.js nodemon
Сейчас существует более простой способ, если вы просто хотите принимающей простой сервер http.
НПМ установки -G с HTTP-сервер
и открыть наш каталог и тип
HTTP-сервер
https://www.npmjs.org/package/http-server
Быстрый способ:
Ваш путь:
Вместо того чтобы работать с оператором switch, я считаю, что лучше искать тип содержимого в словаре:
Это, по сути, обновленной версией принято отвечать за подключение версия 3:
Я также добавил опцию по умолчанию, так что index.html подается по умолчанию.
если у вас есть узел установлен на вашем PC, вероятно, вы имеете НПМ, если вы Don'т нужна NodeJS вещи, вы можете использовать служить пакет для этого:
1 - Установка пакета на ваш компьютер:
2 - служить статический папку:
Он покажет вам, какой порт статическую папку подается, просто перейдите к узлу, как:
Вы Don'т должны использовать любые модули npm, чтобы запустить простой сервер, там's очень маленькая библиотека название "НПМ бесплатный сервери" для узла:
50 строк кода, выходы, если вы запрашиваете файл или папку и придает ей красный или зеленый цвет, если он не работал. Менее 1 Кб (сжатый).
Я нашел интересную библиотеку по НПМ, которые могут пригодиться вам. Это's посетило мим(
НПМ установить мим
или https://github.com/broofa/node-mime) и он может определить тип MIME файла. Здесь'ы пример веб-сервер я написал, используя это:Это будет служить любой обычный текст или файл изображения (.формате HTML .в CSS, .Яш, .формат PDF, .формат JPG, .ПНГ .M4A и .MP3, являются расширениями я'вэ проверить, но это теория, она должна работать на все) <Н1>разработчик отмечает</Н1>
Вот пример вывода, который я получил с ним:
Обратите внимание на функции раскодировал в строительстве путь. Это позволит для файлов с пробелами и закодированных символов.
Редактировать:
Пример приложения Node.js Node Chat обладает нужной вам функциональностью.
В его README.textfile 3. Шаг - это то, что вы ищете.
Вот server.js
Здесь util.js
Как я делаю это в первую очередь установите статический узел в глобальном масштабе через
затем перейдите в каталог, содержащий HTML-файлов и запустить статический сервер "статический".
:8080/"в yourHtmlFile и quot перейти на браузер и введите localhost в;`.
В основном копируя принято отвечать, но избегая создания файла JS.
Нашли его очень удобным.
Обновление ## Как в последней версии Экспресс, служить статические стала отдельно промежуточного. Используйте это, чтобы служить:
Установки служат статические первым.
Я думаю, что вы где искали этого. В index.html просто наполните ее обычной HTML - код- все, что вы хотите представить, как:
Я использую ниже код, чтобы запустить простой веб-сервер, которые делают по умолчанию HTML-файл, если нет файла, указанного в URL.
Он будет обрабатывать все js, css и изображения файл, вместе со всеми HTML-содержимого.
Согласен на заявление, что "Нет содержания-типа лучше, чем неправильныйи"
Я'м не уверен, если это именно то, что вы хотели, однако, вы можете попытаться изменить:
к этому:
Это будет иметь клиентский браузер отображает файл как HTML вместо обычного текста.
Немного более подробный Экспресс-4.X версии, но и предоставит список каталогов, сжатие, кэширование и запросов на регистрацию в минимальное количество линий
Вы можете просто ввести в консоли
ш справку по NPX служить
РЕПО: https://github.com/zeit/serve.