Я настроил сервер для использования 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);
});
Очевидно, я хотел бы создать страницу, отличную от основной страницы на моем сайте. Что я делаю не так?