参数为空的 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 个选择:

  1. 使用带有 ? 的可选路径参数,像这样
api.get("/api/plugin/:action?", (req,res) => { ... }
  1. 使用查询参数,像这样:
api.get("/api/plugin/", (req,res) => { ... }

并致电:

http://localhost:3000/api/plugin?action=

并签入 req.query 对象