#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, для этой цели.