express js проблема с показом html .index? - PullRequest
1 голос
/ 05 апреля 2020

enter image description here это моя первая попытка с express js, и я пытаюсь отобразить индекс. html ho существует в папке '' publi c '' I не знаю, где проблема
на побочном сервере, который у меня есть:

const express = require('express');
const app = express();
app.listen(3000, () => console.log('listening at 3000'));
app.use(express.static('public'));

, и я перезагружаю сервер с git bash; и я помещаю свой индекс. html в каталог 'publi c', и я перезапускаю свой сервер. Я помещаю http://localhost: 3000 / в браузер и показываю помощь "Не удается получить", пожалуйста, и спасибо в аванс enter image description here

enter image description here

Ответы [ 4 ]

0 голосов
/ 05 апреля 2020

Ваш код работает как есть, когда каталог public находится внутри Текущий рабочий каталог (т. Е. Каталог, в котором вы находитесь, когда запускаете npm start или node src/index.js).

Если вы хотите убедиться, что каталог находится там, где вы запускаете скрипт, используйте путь относительно вашего скрипта, используя собственный path модуль .

Например, если структура вашей папки выглядит следующим образом:

my-project/
 |_ public/
 |   |_ index.html
 |_ src/
 |   |_ index.js
 |_ package.json

вам нужно go подняться на один уровень (..):

const Path = require('path'); // <------- add this native module
const express = require("express");
const app = express();
app.listen(3000, () => console.log("listening at 3000"));

const publicPath = Path.join(__dirname, '../public'); // <-- get path
app.use(express.static(publicPath));

Если каталог находится в той же папке, что и ваш Сценарий, вы можете просто сделать

Path.join(__dirname, 'public');
0 голосов
/ 05 апреля 2020

Вы должны составить маршрут и сделать индекс. html


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

app.use(express.static('public'));

app.route('/',function () {
    res.sendFile('index.html');
});

app.listen(3000, () => console.log('listening at 3000'));
0 голосов
/ 05 апреля 2020

Вам необходимо задать index параметр до express.static(), например:

app.use(express.static('public', {index: 'index.html'} ));

Имейте в виду, что express 'stati c рендеринг не' t превращается в полнофункциональный веб-сервер для обслуживания файлов (например, apache, nginx и другие).

0 голосов
/ 05 апреля 2020

Убедитесь, что первая консоль express запущена или нет, затем запустите по крайней мере один API, например api.get ('pathname', callbak). Использование маршрута. Затем поднимите вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...