admin管理员组文章数量:1277475
I set my nodejs template engine over to ejs. When I run my app.js with my ejs template, I receive a error of "Failed to lookup view 'error' in views"
Error: Failed to lookup view "index" in views directory "/home/runner/kaskusttv/views"
at Function.render (/home/runner/kaskusttv/node_modules/express/lib/application.js:580:17)
at ServerResponse.render (/home/runner/kaskusttv/node_modules/express/lib/response.js:1012:7)
at /home/runner/kaskusttv/app.js:72:6
at Layer.handle [as handle_request] (/home/runner/kaskusttv/node_modules/express/lib/router/layer.js:95:5)
at next (/home/runner/kaskusttv/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/home/runner/kaskusttv/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/home/runner/kaskusttv/node_modules/express/lib/router/layer.js:95:5)
at /home/runner/kaskusttv/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/home/runner/kaskusttv/node_modules/express/lib/router/index.js:335:12)
at next (/home/runner/kaskusttv/node_modules/express/lib/router/index.js:275:10)
at pression (/home/runner/kaskusttv/node_modules/pression/index.js:220:5)
at Layer.handle [as handle_request] (/home/runner/kaskusttv/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/runner/kaskusttv/node_modules/express/lib/router/index.js:317:13)
at /home/runner/kaskusttv/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/home/runner/kaskusttv/node_modules/express/lib/router/index.js:335:12)
at next (/home/runner/kaskusttv/node_modules/express/lib/router/index.js:275:10)
What is the proper place to get these to work in express? I used this to set the engine to ejs
app.set("views", path.join(__dirname, "views"));
app.set("view engine", "ejs");
I set my nodejs template engine over to ejs. When I run my app.js with my ejs template, I receive a error of "Failed to lookup view 'error' in views"
Error: Failed to lookup view "index" in views directory "/home/runner/kaskusttv/views"
at Function.render (/home/runner/kaskusttv/node_modules/express/lib/application.js:580:17)
at ServerResponse.render (/home/runner/kaskusttv/node_modules/express/lib/response.js:1012:7)
at /home/runner/kaskusttv/app.js:72:6
at Layer.handle [as handle_request] (/home/runner/kaskusttv/node_modules/express/lib/router/layer.js:95:5)
at next (/home/runner/kaskusttv/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/home/runner/kaskusttv/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/home/runner/kaskusttv/node_modules/express/lib/router/layer.js:95:5)
at /home/runner/kaskusttv/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/home/runner/kaskusttv/node_modules/express/lib/router/index.js:335:12)
at next (/home/runner/kaskusttv/node_modules/express/lib/router/index.js:275:10)
at pression (/home/runner/kaskusttv/node_modules/pression/index.js:220:5)
at Layer.handle [as handle_request] (/home/runner/kaskusttv/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/runner/kaskusttv/node_modules/express/lib/router/index.js:317:13)
at /home/runner/kaskusttv/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/home/runner/kaskusttv/node_modules/express/lib/router/index.js:335:12)
at next (/home/runner/kaskusttv/node_modules/express/lib/router/index.js:275:10)
What is the proper place to get these to work in express? I used this to set the engine to ejs
app.set("views", path.join(__dirname, "views"));
app.set("view engine", "ejs");
Share
Improve this question
asked Apr 30, 2021 at 10:02
KASKUSTTVKASKUSTTV
271 gold badge1 silver badge5 bronze badges
5 Answers
Reset to default 3app.set("views", path.join(__dirname, "views"));
This line means: The express app will use ejs files in "views" folder to render HTML
Error: Failed to lookup view "index" in views directory "/home/runner/kaskusttv/views"
This error means: The express app tried to search for index.ejs file in "/home/runner/kaskusttv/views"
, but it couldn't.
Your setup is correct, you just need to put index.ejs file in the "views" folder (and the "views" folder is in the root directory of your app).
I created this sandbox, feel free to test it : https://glitch./edit/#!/express-ejs-sandbox0
After 1 hour of headache I figured it was because express and ejs could not find the view, to solve this you have to specified where is your views folder
app.set("views", join(__dirname, "views"));
app.set("view engine", "ejs");
Maybe you feel confused because at the end of the error it seems that ejs is located in the views folder, look at the end:
Error: Failed to lookup view "auth/tes/indexasd" in views directory "/home/ivan/code/google-photos-clone-typescript-nodejs/src/views"
But it is not, I don't know why it happens but if you don't add the previous lines it doesn't work
I had the same issue and the fix for me was to use a single quote like so app.set('views, __dirname + ./views');
The one I was using before has two sets of quotes and did not work app.set('views', '__dirname + ./views');
Once you have made "views" directory and put your index.ejs in it. When you render it just add "views/index"
res.render("views/index",{....});
After checking all the file setup path for "views" still i cant able to solve. Finally ended by space in between (edit .ejs).So i remend to check the name of your properly with space in between.
本文标签: javascriptExpress Error Failed to lookup view quotindexquot in views directoryStack Overflow
版权声明:本文标题:javascript - Express: Error: Failed to lookup view "index" in views directory - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741294465a2370736.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论