我正在按照此处的说明进行操作:https://scotch.io/tutorials/easy-node-authentication-setup-and-local,当我在尝试运行我的代码时出现此错误时,
Error: Failed to lookup view "index.ejs" in views directory "Directory/views"
at EventEmitter.render (Directory/node_modules/express/lib/application.js:579:17)
at ServerResponse.render (Directory/node_modules/express/lib/response.js:961:7)
at Directory/ourMeanJS/config/routes.js:10:13
at Layer.handle [as handle_request] (Directory/node_modules/express/lib/router/layer.js:95:5)
at next (Directory/node_modules/express/lib/router/route.js:131:13)
at Route.dispatch (Directory/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (Directory/node_modules/express/lib/router/layer.js:95:5)
at Directory/node_modules/express/lib/router/index.js:277:22
at Function.process_params (Directory/node_modules/express/lib/router/index.js:330:12)
at next (Directory/node_modules/express/lib/router/index.js:271:10)
at Directory/node_modules/connect-flash/lib/flash.js:21:5
at Layer.handle [as handle_request] (Directory/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (Directory/node_modules/express/lib/router/index.js:312:13)
at Directory/node_modules/express/lib/router/index.js:280:7
at Function.process_params (Directory/node_modules/express/lib/router/index.js:330:12)
at next (Directory/node_modules/express/lib/router/index.js:271:10)
这是我的路线设置:
module.exports = function(app, passport) {
// =====================================
// HOME PAGE (with login links) ========
// =====================================
app.get('/', function(req, res) {
res.render('index.ejs'); // load the index.ejs file
});
这是我的一些server.js:
app.set('view engine', 'ejs'); // set up ejs for templating
require('./config/routes.js')(app, passport);
我的观点位于目录/视图中,我有一个名为index.ejs的视图。任何人都知道出了什么问题?
*编辑刚刚意识到这条路线有效,不知道是否是线索
app.get('/signup', function(req, res) {
// render the page and pass in any flash data if it exists
res.render('signup.ejs', { message: req.flash('signupMessage')});
});
答案 0 :(得分:5)
我也有这个问题,我的发现者将文件显示为index.ejs,但实际上它是幕后的index.ejs.html。要在Mac上修复此问题,请右键单击您的文件 - >获取信息 - >并从中删除.html扩展名。
答案 1 :(得分:2)
想出来。 index.ejs实际上是index.ejs.html但是没有在我的gui中显示.html。
答案 2 :(得分:0)
从错误"错误:无法查找视图" index.ejs"在视图目录"目录/视图"
我可以假设您已正确设置了视图目录。
试试这个:
res.render('index');
答案 3 :(得分:0)
我有同样的错误,但来自差异代码项目。 我把所有其他人保留了骨架,但仍然是一样的。 所以我决定怀疑“index.ejs”里面的东西是否有东西,因此,创建了一个名为“XX.ejs”的新文件并让我的.js引用它。从静态HTML代码到从index.ejs复制到它的所有内容,工作得非常好!称它为“XX.ejs”和“XX”无关紧要。 在.js里面我把它放回“index”或“index.ejs”,哇哇,得到了原始错误。 不要相信“index”或“index.ejs”是保留字,而编写者的源代码也使用它并且有效。