参数为空的 ExpressJS 路由器
ExpressJS router with parameter empty
我正在使用 ExpressJS 开发我的第一个 Rest API 和 NodeJS。它非常简单直观。
我的路由规则之一是:
api.get("/api/plugin/:action", (req,res) => { ... }
如果我发送:
http://localhost:3000/api/plugin
我收到错误:
Cannot get /api/plugin/
有没有办法拦截这种单一情况,排除没有 :action 的路由?我需要检查 req.param,并验证操作参数,即使它是空的。
你可以在路由中使用 ?
使你的参数可选
api.get("/api/plugin/:action?", (req,res) => { ... }
您有 2 个选择:
- 使用带有
?
的可选路径参数,像这样
api.get("/api/plugin/:action?", (req,res) => { ... }
- 使用查询参数,像这样:
api.get("/api/plugin/", (req,res) => { ... }
并致电:
http://localhost:3000/api/plugin?action=
并签入 req.query 对象
我正在使用 ExpressJS 开发我的第一个 Rest API 和 NodeJS。它非常简单直观。 我的路由规则之一是:
api.get("/api/plugin/:action", (req,res) => { ... }
如果我发送:
http://localhost:3000/api/plugin
我收到错误:
Cannot get /api/plugin/
有没有办法拦截这种单一情况,排除没有 :action 的路由?我需要检查 req.param,并验证操作参数,即使它是空的。
你可以在路由中使用 ?
使你的参数可选
api.get("/api/plugin/:action?", (req,res) => { ... }
您有 2 个选择:
- 使用带有
?
的可选路径参数,像这样
api.get("/api/plugin/:action?", (req,res) => { ... }
- 使用查询参数,像这样:
api.get("/api/plugin/", (req,res) => { ... }
并致电:
http://localhost:3000/api/plugin?action=
并签入 req.query 对象