Javascript 错误:查找视图失败";“错误”;在视图目录中使用手柄
嗨,我对NodeJS中的web开发非常陌生。在今天的工作中,我的任务是为web应用程序设置一个环境。我使用的是把手,但我无法使“视图引擎设置”正常工作,以便渲染“视图”文件和布局文件夹。我已经看过了文档和每一篇与我的问题类似的堆栈溢出文章,但我仍然一无所获。下面是我的server.js代码和我的应用程序架构。我将非常感谢任何反馈,提前谢谢Javascript 错误:查找视图失败";“错误”;在视图目录中使用手柄,javascript,node.js,express,Javascript,Node.js,Express,嗨,我对NodeJS中的web开发非常陌生。在今天的工作中,我的任务是为web应用程序设置一个环境。我使用的是把手,但我无法使“视图引擎设置”正常工作,以便渲染“视图”文件和布局文件夹。我已经看过了文档和每一篇与我的问题类似的堆栈溢出文章,但我仍然一无所获。下面是我的server.js代码和我的应用程序架构。我将非常感谢任何反馈,提前谢谢 var express = require('express'); var path = require('path'); var hand
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
你的home.hbs在布局中,你的视图被设置为./views目录,因此你可能必须将其放在render res.render('layouts/home')@JoseHermosillaRodrigo我已经尝试过了,但没有成功,我知道当我将视图设置到视图文件夹时会出现问题,我只是不知道我做错了什么。如果home.hbs不是布局,那么它在布局文件夹中做了什么????另外main.hbs可能是layout,而您在layout文件夹中没有它。因此,首先将hbs文件放在正确的文件夹中。现在,如果home.hbs位于views文件夹中。/views/home.hbs,则res.render(“home”);应该work@Molda那也不行,伙计:(我只是注意到它抱怨错误视图。你有。/views/error.hbs吗?