Я работаю вместе с учебным пособием, чтобы изучить MVC, и я не могу заставить свои представления отображать. Когда я пытаюсь отобразить свои представления локально, я получаю следующую ошибку. Я не очень хорошо разбираюсь в обслуживании просмотров из Express, поэтому я не уверен, какие шаги предпринять, чтобы устранить эту ошибку.
Ошибка: не удалось найти представление «индекс» в каталоге представлений «представления».
Мой файл app.js выглядит следующим образом:
const path = require("path")
const express = require('express');
const app = express()
const port = process.env.port || 3000
// express middelware
app.use(express.urlencoded({ extended: false }))
app.use(express.json())
app.use(express.static("public"))
// views are the files you render
app.set("views", "views")
app.set("view engine", "hbs")
// end express middleware
app.get("/", (req, res) => {
res.render("index")
})
app.get("/about", (req, res) => {
res.render("about")
})
app.listen(port, () => {
console.info(`listening on port ${port}`)
})
Моя настройка файла выглядит следующим образом:
const path = require("path")
const express = require('express');
const app = express()
const port = process.env.port || 3000
// express middelware
app.use(express.urlencoded({ extended: false }))
app.use(express.json())
app.use(express.static("public"))
// views are the files you render
app.set('views', __dirname + '/../views');
app.set("view engine", "hbs")
// end express middleware
app.get("/", (req, res) => {
res.render("index")
})
app.get("/about", (req, res) => {
res.render("about")
})
app.listen(port, () => {
console.info(`listening on port ${port}`)
})
Вам необходимо указать папку представлений как часть пути к каталогу. app.set('views', __dirname + '/../views');