Как правило, когда вы используете express, вам не нужно использовать модуль http непосредственно самостоятельно. app.use()
вызовы не должны помещаться в функцию обратного вызова, которая вызывается для каждого HTTP-запроса, который получает сервер, их следует размещать в том месте, которое запускается один раз при запуске сервера, как на верхнем уровне вашего модуля.
Если вы переместите файл index.html
в папку public
, ваш источник server.js
должен быть таким простым:
var express = require("express");
var app = express();
var path = require("path");
var port = process.env.PORT || 1337;
app.use(express.static(path.join(__dirname, "/public")));
app.listen(port);
Если вы просто пытаетесь запустить полностью stati c file server, есть кое-что еще более простое, что вы можете сделать. Установите serve
глобально и запустите его в каталоге, из которого вы хотите отправить файлы:
npm i -g server
npx serve public -p 1337