Можно ли использовать express без механизма шаблонов?
ОБНОВЛЕНО
У некоторых может быть опасение, что sendFile обеспечивает кэширование на стороне клиента. Существуют различные способы кэширования на стороне сервера и поддержание встроенного в вопрос OP вопроса, можно отправить обратно только текст тоже с отправкой :
res.send(cache.get(key));
Ниже был оригинальный ответ от 3 лет назад:
Для тех, кто ищет альтернативный ответ PavingWays, можно также сделать:
app.get('/', function(req, res) { res.sendFile('path/to/index.html'); });
Не нужно писать:
app.use(express['static'](__dirname + '/public'));
Да,
app.get('/', function(req, res){ res.render('index.html'); });
должен просто работать
Для тех, у кого есть необходимость немедленно использовать обычный HTML без jade в новом express-проекте, вы можете это сделать.
Добавьте index.html
в папку views.
В приложении app.js
app.get('/', routes.index);
в
app.get('/', function(req, res) { res.sendfile("views/index.html"); });
Используйте это вместо этого. Для пояснения см. Раздел ниже.
app.get('/', function(req, res) { res.sendFile(__dirname + "/views/index.html"); });
Вы можете автоматически загружать статические файлы с помощью Express следующим образом:
// define static files somewhere on top app.use(express['static'](__dirname + '/your_subdir_with_html_files'));
На самом деле это должно быть express.static (…), но для прохождения JSLint над версиями работает тоже;)
Затем вы запускаете сервер и слушаете, например, на порт 1337:
// app listens on this port app.listen(1337);
Express теперь выполняет статические файлы в / your_subdir_with_html_files автоматически следующим образом:
HTTP: // локальный: 1337 / index.html
HTTP: // локальный: 1337 / otherpage.html
В вашем основном файле:
app.get('/', function(req, res){ res.render('index'); });
Ваш файл index.jade должен содержать только:
include index.html
где index.html – это необработанный HTML-код, который вы создали.
Это все устарело – правильный ответ для 3x, 4x – это
Второй ответ: визуализировать базовый HTML-просмотр?