Хотя мой путь рендеринга правильный, когда я нажимаю http://localhost:4444/admin/posts/create
, он показывает какую-то ошибку, такую как
Error: Failed to lookup view "/admin/posts/create" in views directory "D:\node practise\CMS\views"
app.js файл похож на
const express = require('express');
const app = express();
const path = require('path');
const exphbs = require('express-handlebars');
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/cms', { useNewUrlParser: true })
.then(db => {
console.log('MONGO CONNECTED!');
})
.catch(error => {
console.log('MONGO NOT CONNECTED!');
})
//making app to use static file
app.use(express.static(path.join(__dirname, 'public')));
//define template engine
app.set('view engine', 'handlebars');
//set default engine
app.engine('handlebars', exphbs({defaultLayout: 'home'}));
//load routes
const home = require("./routes/home/index");
const admin = require("./routes/admin/index");
const posts = require("./routes/admin/posts");
//use routes
app.use(home);
app.use("/admin", admin);
app.use("/admin/posts", posts);
//setting up server
app.listen(4444, () => {
console.log('Listening....');
});
У меня есть posts.js, который обрабатывает этот маршрут как
const express = require("express");
const router = express.Router();
router.all('/*', (req, res, next) => {
req.app.locals.layout = 'admin';
next();
})
router.get('/', (req, res) => {
res.send('It works!');
})
router.get('/create', (req, res) => {
res.render('/admin/posts/create');
})
module.exports = router;
И у меня есть структура папок представлений как
В чем может быть причина ошибки? Когда я пытаюсь отправить ответ, он работает, но когда я пытаюсь отобразить представление, он показывает ошибку.