在前端开发中,我们经常会使用 Express 框架来搭建服务器。但是随着项目规模的增大,服务器端点的数量也随之增加。当我们需要查看所有端点时,一一查找是十分费时费力的。这时候,npm 包 list-endpoints-express 就可以派上用场了。
list-endpoints-express 介绍
list-endpoints-express 是一个用于 Express 框架的 npm 包,可以自动遍历所有声明的路由,输出它们的 HTTP 方法、URL 和处理函数等信息。这个包可以帮助开发者更快地查找和调试所有的路由。
使用 list-endpoints-express 只需要在 Express 应用程序中使用以下代码:
const listEndpoints = require("express-list-endpoints"); app.use("/api", apiRouter); console.log(listEndpoints(app));
其中,"app" 参数表示 Express 应用程序对象,"apiRouter" 是你的路由模块,所有的路由都被注册到了该模块对象上。使用上述代码,你可以输出所有的路由信息。
list-endpoints-express 的学习指导
除了用于输出路由信息,list-endpoints-express 还提供了其他的使用方式,可以让你更深入地了解它。
- 输出过滤器
你可以使用 listEndpoints(app, options) 函数来启用输出过滤器。options 是一个包含以下字段的对象:
- prefix: 只输出指定前缀的模块路由信息;
- skip: 需要过滤掉的模块名或路由的正则表达式;
- allowDuplicates: 允许重复路由被记录,默认 false;
例如,在以下应用程序中:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ------------- - ---------------------------------- ----- --- - ---------- --------------- ------------------------- ---------------- -------------------------- ----------------- --------------------------- ------------------------------ - ------- ------ ----
我们只会看到 "/api" 的路由信息。
- 图形路由器
list-endpoints-express 还提供了一个图形路由器,通过浏览器访问,可视化展示你的路由信息。使用开源软件 Swagger UI,你可以用以下方式启用它:
const listEndpoints = require("express-list-endpoints"); const swaggerUi = require("swagger-ui-express"); const YAML = require("yamljs"); const swaggerDocument = YAML.load("./swagger.yaml"); app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(swaggerDocument));
其中 swaggerDocument 是一个 YAML 文件,包含了你的应用程序的路由信息,你可以通过以下方式生成它:
-- -------------------- ---- ------- ----- ------------- - ---------------------------------- ----- ---- - ------------------- ----- -- - -------------- ----- --------- - ------------------- ----- ------- - - -------- ------ ----- - ------ --- ------- ----- -------- -------- -- ------ -- -- ---------------------------- -- - ----- ---- - -------------------------------- -------- ----- ------ - -------------------- ----- ---------- - ---------------------------- ----- ----------- - -------------- -- ---------------------- - ------------------- - --- - ----- ------ - - -------- ------------ ----- ------------- ----------- --- ---------- --- -- --------------------- - - ------------ ---- -- -- ------- --- ------ -- ------ --- ------ - ----------------- - - - ----- ------- --- ------- --------- ----- ------- - ----- ------------------------------ -- -- -- - --------------------------- - ------- --- ----- ------------ - ----------------------- -------------------------------- --------------
然后打开 http://localhost:8080/api-docs URL 就可以访问到 Swagger UI 页面了。
示例代码
下面是一个有路由的示例代码,假设这是一个返回随机数的 Express 应用程序:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ------------- - ---------------------------------- ----- --- - ---------- ----- ---- - ----- ------------ ----- ---- -- - --------------- --------- --- ------------------ ----- ---- -- - ----- ------ - ------------------------ - ----- ------------- ------ ------ -- ------------ --- ----------------- ----- ---- -- - ------------- - ---- ---------- --- --------------- ----- ---- -- - ------------- - --- ---------- --- ----- --------- - ------------------- ----------------------- ---------------- -- -- - -------------------- --- --------- -- --------------------------- ---
输出结果如下:
[ { path: "/", methods: [ "GET" ] }, { path: "/random", methods: [ "GET" ] }, { path: "/post", methods: [ "POST" ] }, { path: "/put", methods: [ "PUT" ] } ]
总结
list-endpoints-express 是一个非常方便的 npm 包,可以帮助我们快速了解应用程序的路由信息。利用输出过滤器和图形路由器,可以更深入地了解和管理应用程序的路由。希望本文的介绍和示例代码可以帮助你更好地使用 list-endpoints-express。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056bdb81e8991b448e585c