You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 19:47:28