#node.js #express
#node.js #экспресс
Вопрос:
Я работаю вместе с учебным пособием по изучению 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.log(`listening on port ${port}`)
})
Моя настройка файла выглядит следующим образом:
Ответ №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.log(`listening on port ${port}`)
})
Вам необходимо ссылаться на папку views как часть пути к каталогу.
app.set('views', __dirname '/../views');