错误:无法在视图目录中使用句柄查找视图“错误”

嗨,我很新,在网站开发的节点JS。 在今天的工作中,我的任务是为Web应用程序设置一个环境。 我使用的是把手,但是我无法使“查看引擎设置”工作以渲染“视图”文件和布局文件夹。 我已经看过文档和每个堆栈溢出的post,类似于我的问题,但我仍然无处可去。 这里是我的代码server.js和我的应用程序的体系结构。 我会很感激提前感谢任何反馈!

var express = require('express'); var path = require('path'); var handlebars = require('handlebars'); var exphbs = require('express-handlebars'); var app = express(); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); //view engine setup app.set('views', './views') app.engine('.hbs', exphbs({ defaultLayout: 'main', extname: '.hbs' })); app.set('view engine', '.hbs'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(__dirname + '/public')); //routes app.get('/home', function(req, res){ res.render('home'); }); //error handlers //404 catch-all handler(middleware) app.use(function(req, res, next){ res.status(404); res.send('404'); }); //500 error handler(middleware) app.use(function(req, res, err, next){ console.error(err.stack); res.status(500); res.send('500'); }); // development error handler // will print stacktrace if (app.get('env') === 'development') { app.use(function(err, req, res, next) { res.status(err.status || 500); res.render('error', { message: err.message, error: err }); }); } // production error handler // no stacktraces leaked to user app.use(function(err, req, res, next) { res.status(err.status || 500); res.render('error', { message: err.message, error: {} }); }); app.listen(process.env.PORT || 5000); console.log('Listening on port 5000'); fgcms ├── server.js ├── node_modules └── package.json ├── public └── views ├── layouts──home.hbs └──main.hbs