Как мне избавиться от Jade при использовании Express с Node.JS? Я хочу использовать простой HTML. В других статьях я видел, что люди рекомендовали app.register (), который теперь устарел в последней версии.
103
Сделать это можно так:
Установите ejs:
npm install ejs
Установите свой шаблонизатор в app.js как ejs
// app.js
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
Теперь в вашем файле маршрута вы можете назначить переменные шаблона
// ./routes/index.js
exports.index = function(req, res){
res.render('index', { title: 'ejs' });};
Затем вы можете создать свое представление html в каталоге / views.
title
в html файле?Jade также принимает html-ввод.
Просто добавьте точку в конец строки, чтобы начать отправку чистого html.
Если это помогает, попробуйте:
PS - Не нужно закрывать HTML - Джейд делает это автоматически.
источник
Что касается экспресса 3, вы можете просто использовать
response.sendFile
Из официальной справки по экспресс-API :
Предупреждение
res.sendFile
предоставляет кэш на стороне клиента через заголовки кеша http, но не кэширует содержимое файла на стороне сервера. Приведенный выше код будет попадать на диск при каждом запросе .источник
sendfile
не позволяет вам создавать какие-либо шаблоны, так как он просто отправляет байты из файла. Кроме того, я бы не рекомендовал использоватьsendfile
это, потому что это означает, что вы будете попадать на диск каждый раз, когда приходит запрос - огромное узкое место. Для страниц с высокой посещаемостью вам действительно следует выполнять кэширование в памяти.На мой взгляд, использование чего-то такого большого, как ejs, только для чтения html-файлов - это немного тяжеловесно. Я просто написал свой собственный шаблонизатор для html-файлов, который удивительно прост. Файл выглядит так:
Я назвал свой htmlEngine, и вы его используете, просто говоря:
источник
app.register()
не был обесценен, его просто переименовали,app.engine()
поскольку Express 3 меняет способ обработки шаблонов .Если вы ищете механизм шаблонов, который позволяет использовать «простой» HTML, я рекомендую doT, потому что он очень быстрый .
Конечно, имейте в виду, что модель представления Express 3 оставляет кеширование представлений на ваше усмотрение (или на ваш механизм шаблонов). В производственной среде вы, вероятно, захотите кэшировать свои представления в памяти, чтобы не выполнять дисковый ввод-вывод при каждом запросе.
источник
Вы можете использовать EJS с выражением, какие шаблоны являются HTML, но поддерживают переменные. Вот хороший учебник по использованию EJS в экспрессе.
http://robdodson.me/blog/2012/05/31/how-to-use-ejs-in-express/
источник
Чтобы заставить движок рендеринга принимать html вместо jade, вы можете выполнить следующие шаги;
Установите Consolidate и перейдите в свой каталог.
добавьте следующие строки в файл app.js
добавьте свои шаблоны представлений в виде .html в папку «views». Перезагрузите сервер узла и запустите приложение в браузере.
Хотя это будет отображать HTML без каких-либо проблем, я бы порекомендовал вам использовать JADE, изучив его. Jade - потрясающий шаблонизатор, изучение которого поможет вам улучшить дизайн и масштабируемость.
источник
сначала проверьте совместимость версии механизма шаблонов, используя строку ниже
тогда вам не нужно использовать представление из списка. выберите no view
теперь вы можете использовать все свои HTML, CSS, JS и изображения в общей папке.
источник
Что ж, похоже, вы хотите обслуживать статические файлы. И для этого есть страница http://expressjs.com/en/starter/static-files.html
Странно, что никто не ссылается на документацию.
источник
Учитывая, что у вас уже есть маршруты или вы знаете, как это сделать.
ПРИМЕЧАНИЕ: этот маршрут должен быть размещен после всех остальных, поскольку * принимает все.
источник
поскольку Jade поддерживает HTML, если вы просто хотите иметь .html ext, вы можете сделать это
тогда вы просто меняете файл в представлениях с jade на html.
источник
Вы также можете напрямую включить свой html-файл в свой нефритовый файл.
Оригинальный ответ: Экспресс-генератор без нефрита
источник
Если вы хотите использовать простой html в nodeJS, без использования jade .. или чего-то еще:
Лично меня это устраивает.
Преимущество - простота при управлении. Вы можете использовать некоторые приемы, например
'<p>' + (name || '') + '</p>'
, троичные и т. Д.Если вам нужен код с отступом в браузере, вы можете сделать:
и используйте \ t или \ n по желанию. Но я предпочитаю без него, плюс он быстрее.
источник
fs
модуль.fs.readFile(htmlfile, 'utf8', function (err, file) {