#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. Очистка кэша действительно сделала это.