概述
在 Web 开发中,路由(routing)是一个非常重要的概念。在 Express.js 中,我们通常会编写一个大的路由文件,再将其拆分成多个子路由。但是,随着项目的规模不断扩大,路由文件也会变得越来越庞大,维护难度也越来越高。
为了解决这个问题,我们可以使用 npm 包 express-autoload-routes。该包可以自动加载路由文件,让我们的 Express 项目代码更加简洁、可读、易于维护。
安装
我们可以通过 npm 安装 express-autoload-routes:
$ npm install express-autoload-routes
接着,在我们的代码中引入它:
const autoloadRoutes = require('express-autoload-routes');
使用
我们可以将路由文件按照模块划分,比如把与用户相关的路由写在 user.js 中,把与文章相关的路由写在 article.js 中。那么我们就可以在项目根目录下建立一个 routes 文件夹,再在该文件夹下新建 user.js 和 article.js 这两个文件。它们的代码如下所示:
user.js:
-- -------------------- ---- ------- ----- ------ - ---------------------------- --------------- ----- ---- -- - -------------- ---- ------- --- ---------------------- ----- ---- -- - -------------- ------- ------- --- -------------- - -------
article.js:
-- -------------------- ---- ------- ----- ------ - ---------------------------- --------------- ----- ---- -- - ----------------- ---- ------- --- ------------------------- ----- ---- -- - ----------------- ------ ----- --- ------------------- --- -------------- - -------
假设我们使用以下的方法来初始化 Express 应用:
const express = require('express'); const app = express();
那么,只需要调用 autoloadRoutes(app)
就可以自动加载 routes 目录下的所有路由文件:
-- -------------------- ---- ------- ----- -------------- - ----------------------------------- ----- ------- - ------------------- ----- --- - ---------- -- -- ----------------------- ------ -------------------- -- ----- ---------------- -- -- - ------------------- -- ------- -- ---- ------- ---
这样,我们就成功地将 routes 目录下的路由文件自动引入到了 Express 应用中。
指定路由文件夹路径
如果你将路由文件夹放在了其他位置,例如 src/routes 目录下,那么可以像下面这样指定路由文件夹的路径:
const path = require('path'); autoloadRoutes(app, { directory: path.join(__dirname, 'src', 'routes'), });
路由文件名称
默认情况下,express-autoload-routes 会自动加载 routes 目录下的所有 .js 文件,并将它们作为路由文件。如果你想手动指定文件名称,可以在文件中加入 filename
属性,例如:
-- -------------------- ---- ------- ----- ------ - ---------------------------- --------------- ----- ---- -- - ----------------- ---- ------- --- ------------------------- ----- ---- -- - ----------------- ------ ----- --- ------------------- --- --------------- - ---------- -- ------ ------- -------------- - -------
这样,article.js
就会被自动引入到 Express 应用中。
完整的示例代码
你可以使用以下代码来快速搭建一个 Express 应用,演示 express-autoload-routes 的使用:
-- -------------------- ---- ------- ----- -------------- - ----------------------------------- ----- ------- - ------------------- ----- ---- - ---------------- ----- --- - ---------- -- -- ----------------------- ------ ------------------- - ---------- -------------------- ---------- --- -- ----- ---------------- -- -- - ------------------- -- ------- -- ---- ------- ---
路由文件 user.js
:
-- -------------------- ---- ------- ----- ------ - ---------------------------- --------------- ----- ---- -- - -------------- ---- ------- --- ---------------------- ----- ---- -- - -------------- ------- ------- --- -------------- - -------
路由文件 article.js
:
-- -------------------- ---- ------- ----- ------ - ---------------------------- --------------- ----- ---- -- - ----------------- ---- ------- --- ------------------------- ----- ---- -- - ----------------- ------ ----- --- ------------------- --- --------------- - ---------- -- ------ ------- -------------- - -------
这样,我们就成功地使用 express-autoload-routes 搭建了一个更加简洁、可读、易于维护的 Express 应用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055cb681e8991b448da2f9