Ошибка: не удалось найти представление "home.hbs" в каталоге представлений - PullRequest
0 голосов
/ 30 января 2020

Я реализую веб-приложение с трехуровневой архитектурой . Сейчас я пытаюсь отобразить файл в моей папке views . Это структура моей папки и код:

enter image description here

Но когда я запускаю это, я получаю следующую ошибку:

Error: Failed to lookup view "home.hbs" in views directory "/web-app/pl/views"

Есть предложения, как сделать эту работу?

1 Ответ

1 голос
/ 30 января 2020

? Ваша ошибка в этом коде app.set('views', path.join("/web-app/pl", "views")); обязательно удалите / в вашем /web-app. Таким образом, его воля будет выглядеть следующим образом: app.set('views', path.join("web-app/pl", "views"));

sure Обязательно создайте папку в своем приложении root: web-app/pl/views и поместите home.hbs в папку views.

Так что ваша папка будет выглядеть следующим образом: 101

- public
- node-modules
- src > server.js
- web-app > pl > views > home.hbs // if set in render { layout: false }
- web-app > pl > views > layouts > main.hbs // default layout

?‍? Например, , ваш app будет выглядеть так этот код ниже: 10

const express = require('express');
const expressHandlebars = require('express-handlebars');
const path = require('path');

const app = express();

app.set('views', path.join("web-app/pl", "views"));
app.engine("hbs", expressHandlebars({
  defaultLayout: "main.hbs"
}))

app.set('view engine', 'hbs');

app.use(express.static('public'));

app.get('/', function (req, res) {
  res.render('home', {
    layout: false
  })
});

app.listen(3000, () => {
  console.log('Server is up');
})

Например, вы можете увидеть в моих кодах: https://codesandbox.io/s/strange-darkness-73opp

Я надеюсь, что это может помочь ты ?.

...