Express загружает файл вместо того, чтобы использовать его как html

#javascript #node.js #express #webserver

#javascript #node.js #экспресс #веб-сервер

Вопрос:

Я пытаюсь создать свой собственный сервер с помощью express. Я пытаюсь обслуживать HTML-файл, но когда я запускаю res.send() на нем, он загружает файл. Вот фрагмент моего кода:

 res.send(fs.readSync(path.join(__dirname, "pages/login.html")))
 

Когда я перехожу на эту страницу, вместо рендеринга файла он загружает его. Если это что-то изменит, эта страница будет перенаправлена со страницы «/».

Обновление: очистка кэша устранила проблему.

Ответ №1:

Вы, по-видимому, забыли установить Content-Type заголовок text/html , чтобы браузер не знал, что он получает HTML-документ, который он должен отображать.

 res.set('Content-Type', 'text/html')
 

… согласно документации.

Тем не менее, если вы обслуживаете статические файлы, то вам, вероятно, следует использовать static модуль вместо того, чтобы запускать свой собственный обработчик.

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

1. Я попробовал это. Это не сработало. Я использую строки, потому что хочу добавить динамические переменные в html с помощью замены регулярных выражений.

2. Существует множество движков шаблонов , совместимых с express, которые намного мощнее, безопаснее и проще в использовании, чем чтение файлов вручную и последующее применение к ним регулярных выражений.

3. Очистка кэша действительно сделала это.