Express - механизм маршрутизации и рендеринга для каждого файла шаблона во вложенном каталоге - PullRequest
1 голос
/ 16 марта 2020

Используя Express Middleware serve-index , полный каталог может быть просмотрен , что в сочетании с server-stati c позволяет изображения и текст быть обработанным (и другими загружаемыми недопустимыми двоичными файлами) при переходе к файлу.

const express = require("express");
const path = require("path")
const serveIndex = require("./index");

const server = express();

server.use("/posts",
  express.static("./posts/"),
  serveIndex("./posts")
);

server.listen(8080);

Мне бы хотелось, чтобы этот файл соответствовал указанному расширению файла шаблона (например, .pug, .liquid .. Консолидация. js), тогда следует использовать соответствующий механизм рендеринга.

Обычно существует выделенный каталог views/ и отдельные маршруты, создаваемые по мере необходимости, но я не буду sh для разброса файлов шаблонов по файловой системе для документирования различных проектов. Путь в URL, который указывается с использованием serve-index, например, localhost/public/views/project-one, будет использоваться для отображения шаблона index.liquid в каталоге этого проекта.

const express = require("express");
const path = require("path")

const server = express();

var { Liquid } = require('liquidjs');
var engine = new Liquid();

// register liquid template engine
server.engine('liquid', engine.express());

server.set("views", path.join(__dirname, "views"));

// route and file to return is hardcoded
server.get('/', function (req, res) {
  res.render('index') // render `index.liquid`
})

server.listen(8080);
...