Express 4 js无法在视图目录中查找视图

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) &

这里有很多类似的问题,但没有一个解决了我的问题

使用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) && 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中使用它的旧方法的示例。