Насколько я знаю, EJS действительно предназначен для шаблонов, ни один из встроенных js не выполняется на клиенте.
Лично я нашел несколько случаев, когда удобно использовать язык шаблонов с помощью AngularJS или любой клиентской рамки. Например, иногда приятно иметь возможность интерполировать токены csurf или данные сеанса, требуемые клиентским приложением, в ваш html на сервере. В других случаях это необязательно.
Как для рендеринга html, используйте промежуточное программное обеспечение express.static
. Он поставляется с Express, вы передаете путь к файлу и возвращает обработчик, который будет обслуживать содержимое данного каталога. Вы можете поставить express.static
в любом месте в цепочке промежуточного программного обеспечения, но я обычно ставил его наверху, чтобы избежать проблем с именами. Прочтите documentation для получения дополнительной информации.
Рассмотрим следующий пример:
var express = require('express')
var app = express();
// Asssuming we have a directory
// `public` in the root of the application
app.use('/', express.static(__dirname + '/public'));
// now you're serving all the files in public directory off the root path
// Add middlewares and routes...
Для действительно простое приложение, вы могли бы вы использовать fs
модуль, и поток содержимое файла в ответ. Ниже приведен наивный пример того, как вы могли это сделать, в производстве вы хотели бы прослушивать события error
и реализовывать некоторый контроль кеша.
app.get('/', function(req, res) {
res.set('Content-Type', 'text/html');
fs.createReadStream('./index.html').pipe(res);
});