Express与EJS项目运行出现Cannot Get错误及EJS错误定位请求
问题排查与修复方案
我帮你找到了两个关键问题,咱们一步步来解决:
1. Express路由设置错误(导致"Cannot Get")
你的app.js里用app.set()来定义根路由,这是完全错误的用法!app.set()是用来配置Express的全局设置(比如你之前设置的view engine),而处理HTTP GET请求的路由应该用app.get()方法。
修复后的app.js代码:
const express = require("express") const bodyParser = require("body-parser"); const app = express(); app.set("view engine", "ejs"); // 把app.set改成app.get,这才是正确的路由定义方式 app.get("/", function (req, res) { var today = new Date(); var day = ""; if(today.getDay() === 6 || today.getDay() === 0) { day = "weekend"; } else { day = "weekday"; } res.render("todo", { kindofDay: day}); }); app.listen(3000, function() { console.log('server is starting on port 3000...'); });
2. EJS文件路径检查(防止渲染失败)
确保你的todo.ejs文件放在项目根目录下的views文件夹里——这是Express默认的视图文件存放路径,如果你没修改过views配置的话,必须遵守这个约定。如果没有views文件夹,手动创建一个就行。
项目结构示例:
你的项目文件夹/ ├── app.js ├── views/ │ └── todo.ejs └── node_modules/
完成以上修改后,重新运行nodemon app.js,浏览器访问http://localhost:3000应该就能正常显示"It's a weekday/weekend !"的内容了。
内容的提问来源于stack exchange,提问作者ramkrushna
相关产品推荐
相关产品推荐

