您好我是Node JS中的Web开发新手。在今天的工作中,我的任务是为Web应用程序设置环境。我正在使用把手,但我无法使“视图引擎设置”工作以呈现“视图”文件和布局文件夹。我查看了文档和每个堆栈溢出帖子,类似于我的问题,但我仍然无处可去。这是我下面的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