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

NodeJS中Express的/hello GET路由无法执行问题咨询

问题原因及解决方法

核心问题

你遇到的问题是Express Router的路径拼接规则导致的:当你在Router中定义路由路径时,如果路径开头没有加/,Express会把挂载路径和这个路径直接拼接(不会自动补斜杠),导致实际匹配的路径和你预期的不一致。

比如你在main.js中用app.use("/", intro)挂载路由,task.js里的route.get("hello")会被解析成"" + "hello",也就是hello,但你请求的是/hello,两者不匹配,所以返回Cannot GET /hello。

解决方法

给task.js里的所有路由路径加上开头的/即可:

let express = require('express')
let route = express.Router();

// 根路径改为 "/"
route.get("/",(req,res) =>
{
    res.status(200).send("Welcome")
})

// hello路径改为 "/hello"
route.get("/hello",(req,res) =>
{
    res.status(200).send("We are in Hello page")
})

module.exports = route

补充说明

当使用app.use(挂载路径, 路由实例)时:

  • 如果Router里的路径以/开头,Express会自动合并挂载路径和路由路径,自动处理重复的斜杠(比如挂载路径是/api,路由路径是/hello,最终匹配/api/hello)
  • 如果Router里的路径不以/开头,会直接拼接字符串(比如挂载路径/api+路由路径hello会变成/apihello,这通常不是预期结果)

内容的提问来源于stack exchange,提问作者Brijesh Roy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 17:07:14