Express 4 js无法在视图目录中查找视图
这里有很多类似的问题,但没有一个解决了我的问题 使用Express 4时出现错误:错误:无法在视图目录“c:\Users\App\views”中查找视图“test” 在EventEmitter.render上(c:\Users\App\node\u modules\express\lib\application.js:579:17) application.js中的第579行显示:Express 4 js无法在视图目录中查找视图,express,handlebars.js,Express,Handlebars.js,这里有很多类似的问题,但没有一个解决了我的问题 使用Express 4时出现错误:错误:无法在视图目录“c:\Users\App\views”中查找视图“test” 在EventEmitter.render上(c:\Users\App\node\u modules\express\lib\application.js:579:17) application.js中的第579行显示: if (!view.path) { var dirs = Array.isArray(view.root) &
if (!view.path) {
var dirs = Array.isArray(view.root) && view.root.length > 1
? 'directories "' + view.root.slice(0, -1).join('", "') + '" or "' + view.root[view.root.length - 1] + '"'
: 'directory "' + view.root + '"'
var err = new Error('Failed to lookup view "' + name + '" in views ' + dirs);
err.view = view;
return done(err);
}
这是我的密码:
var express = require('express'),
exphbs = require('express-handlebars'),
path = require('path'),
mongoose = require('mongoose'),
parser = require('body-parser'),
ranges = require('./models/ranges.js'),
app = express();
app.use(parser.json()); // for parsing application/json
app.set('port', process.env.PORT || 3000);
app.use(express.static(__dirname + '/public'));
// View engine - handlebars
app.engine('handlebars', exphbs({ defaultLayout: 'main', extname: '.hbs' }));
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'handlebars');
// Index page
app.get('/', function (req, res) {
res.render('test');
});
应用程序的目录结构:
根据,您的把手设置应如下所示:
app.engine('.hbs', exphbs({ defaultLayout: 'main', extname: '.hbs' }));
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', '.hbs');
Doh!如果没有使用快速车把模块,我会使用快速车把的默认视图名称。谢谢!我相信他们也有引用3.0中使用它的旧方法的示例。