Как создать простой html-сервер с использованием Express js

#javascript #node.js #express #fileserver

#javascript #node.js #экспресс #файловый сервер

Вопрос:

Я новичок в node.js Я хочу создать простой express.js статический файловый сервер, но у меня есть некоторые проблемы. Я был установлен express.js 4.2 глобально, как это:

 npm install  -g express-generator
  

У меня есть этот код в httpsrv.js:

 var http = require('http');
var express = require('express');
var app = express();

app.use('/', express.static(__dirname   '/public'));
app.listen(3000, function() { console.log('listening')});
  

Я не уверен, что это нормально, я думаю, этого недостаточно, но я не могу его запустить, это сбой с ошибкой: не удается найти модуль ‘express’.

Я хочу создать простой http-сервер, который может обслуживать из определенной папки (например, » public»), и я использую язык .html. Я нашел в интернете много дерьма, я не хочу использовать это.нефритовая штука, и я не хочу создавать пустое веб-приложение с помощью Express и т.д. Я хочу express.js http-сервер, который может работать как Apache и может обслуживать статические HTML-страницы сначала из указанной папки. Может ли кто-нибудь помочь мне в этом, предложить хорошую статью, в которой объясняется шаг за шагом, потому что я новичок.

Комментарии:

1. Вы выполнили приведенные здесь шаги: expressjs.com/guide.html

2. Я не думаю, что express-generator — это то, что вам нужно установить, вам следует запустить npm install -g express, а затем попытаться загрузить его.

3. Я также установил express 4.2, но я прочитал express 4.x также нужен этот экспресс-генератор.

4. …откуда это httpsrv.js взялось? Он не соответствует соглашениям express 4.x . Похоже, что это из более старого примера 3.x . Экспресс-генератор создает, app.js который экспортирует большую часть того, что необходимо, и npm start запускает сервер. Не похоже, что вы использовали генератор или вы использовали его и … проигнорировали вывод?

Ответ №1:

Если вы просто пытаетесь обслуживать статические файлы из каталога с именем «public», вам может повезти с приложением, подобным этому:

 var path = require('path');
var express = require('express');

var app = express();

var staticPath = path.join(__dirname, '/public');
app.use(express.static(staticPath));

app.listen(3000, function() {
  console.log('listening');
});
  

Вам нужно убедиться, что Express установлен. Вероятно, вы будете работать npm install express --save в том же каталоге, что и приведенный выше файл JavaScript. Как только все будет готово, вы запустите node the_name_of_the_file_above.js для запуска своего сервера.

Комментарии:

1. Сейчас это почти хорошо, но когда я запускаю сервер и пытаюсь посмотреть в браузере, я получаю это сообщение: «Не удается ПОЛУЧИТЬ / «. Я думаю, это единственная проблема с каким-либо путем. Мой файл сервера javascript размещен в том же каталоге «/ public», который я хочу обслуживать, это проблема?

2. Измените его на path.join(__dirname, '/public')

3. как запустить приложение на https и http одновременно?

4. @JitendraPancholi Это зависит, но вы можете использовать встроенный https модуль для этого. Рад найти пример, если вам нужны дополнительные рекомендации.

5. Спасибо, я сделал это сейчас.

Ответ №2:

сначала установите экспресс-модуль, несмотря на экспресс-генератор

 npm install express
  

попробуйте это, удалив public

 var express = require('express');
var app = express();

app.use('/', express.static(__dirname));
app.listen(3000, function() { console.log('listening')});
  

он работает нормально.

Ответ №3:

Для решения этой проблемы даже не требуется никакого кода или фреймворков; установите http-сервер из npm, перейдите в папку в командной строке и запустите эту команду:

 http-server
  

И он развернет легкий http-сервер и сразу же отправит статический контент из папки, который можно просмотреть с помощьюhttp://localhost

Комментарии:

1. вы даже не отвечаете на вопрос.

2. Его / ее требованием было настроить простой сервер для обслуживания статических страниц из папки; этот пакет делает именно это. Вам не нужно использовать фреймворк, подобный Express, для этой цели.