Express res.render отображает неправильный файл - PullRequest
0 голосов
/ 08 мая 2020

Я настроил сервер для использования Handlebars в качестве механизма просмотра. Использование res.render в запросе GET на главной странице отображает страницу правильно, однако использование res.render для визуализации страницы, отличной от главной, отображает ту же страницу. Даже использование res.send отправит главную страницу ручек, но оставит выражения без изменений.

Вот мой код:

const express = require("express");
const subdomain = require("express-subdomain");
const handlebars = require("express-handlebars");
const path = require("path");
const bodyParser = require("body-parser");

const app = express();
const subdomain = express.Router();

app.set("views", path.join(__dirname, "/views/layouts"));
app.set("view engine", "handlebars");
app.engine("handlebars", handlebars({
    "layoutsDir": path.join(__dirname + "/views/layouts")
}));

subdomain.use(bodyParser.json());
subdomain.use(bodyParser.urlencoded({"extended": true}));

subdomain.get("/", (req, res) => {
    res.send("books/index.html");
});

subdomain.get("/books", (req, res) => {
    let data = {};

    res.render("books", data);
});

app.use(express.static("public"));
app.use(subdomain("subdomain", subdomain));

app.get("/index", async (req, res) => {
    let data = {};

    res.render("main", data);
});

server = app.listen(8080, () => {
    console.log("listening to requests on port " + 8080);
});

Очевидно, я хотел бы создать страницу, отличную от основной страницы на моем сайте. Что я делаю не так?

1 Ответ

0 голосов
/ 08 мая 2020

Похоже, вы делаете дважды одно и то же

Вместо:

app.set("views", path.join(__dirname, "/views/layouts"));
app.set("view engine", "handlebars");
app.engine("handlebars", handlebars({
    "layoutsDir": path.join(__dirname + "/views/layouts")
}));

Возможно

// view engine setup
app.set("views", path.join(__dirname, "/views/layouts"));
app.set("view engine", "hbs");

Отредактировано:

Проверить редактирование, "hbs" вместо "руля". У меня есть это в моем пакете. json dependencies "hbs": "~ 4.0.4", или проверьте github.com/sahat/hackathon-starter на полный шаблон

...