Экспресс-приложение: ошибка: не удалось найти представление «индекс» в каталоге представлений «представления».

Я работаю вместе с учебным пособием, чтобы изучить 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}`)
})

Моя настройка файла выглядит следующим образом:

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
471
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
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');

Другие вопросы по теме