Node.js Express路由报错:cannot GET /myblog 求助
解决
cannot GET /myblog错误及博客数据获取问题 核心问题分析
你定义的路由是/myblog/:e_mail,这意味着必须在URL后附带邮箱参数(比如/myblog/test@example.com)才能匹配到该路由。直接访问/myblog时,没有对应的路由处理逻辑,所以返回cannot GET /myblog错误。
具体解决方案
- 补充无参数路由处理:如果需要支持访问
/myblog的场景,添加单独的GET路由:app.get("/myblog", (req, res) => { // 可根据需求跳转登录页,或提示用户提供邮箱参数 res.render("error", { errorMessage: "请提供邮箱参数,例如:/myblog/your@email.com" }); }); - 确保访问URL格式正确:访问时必须携带邮箱参数,示例格式:
http://your-domain.com/myblog/user@example.com - 排查数据库查询问题:
- 检查
User模型中email字段的存储格式,若需忽略大小写查询,可修改查询语句:const user = await User.findOne({ email: new RegExp(`^${requestedEmail}$`, 'i') }); - 确认数据库中对应用户文档存在
selfBlog字段,且该字段包含title和content属性
- 检查
- 检查路由顺序:确保带参数的
/myblog/:e_mail路由放在通用路由(如app.get("*", ...))之前,避免被覆盖。
内容的提问来源于stack exchange,提问作者shashank mishra
相关产品推荐
相关产品推荐

