前言
在前端开发中,我们经常会使用到 Express.js 这个 Node.js 的框架。在 Express.js 中,路由 (Routing) 是我们开发 web 应用最基础且必需的一部分。通过路由,我们可以将 URL 映射到处理函数 (handler) 上,以此来处理来自客户端的请求。本文将介绍 Express.js 中路由的使用方式以及路由参数的传递。
路由的使用方式
在 Express.js 中,我们可以通过两种方式来定义路由:基于 HTTP 方法和基于路径。下面我们就分别来介绍一下这两种方式。
基于 HTTP 方法的路由
在 Express.js 中,我们可以使用 app 对象来创建基于 HTTP 方法的路由,其语法如下:
app.METHOD(PATH, HANDLER);
其中,METHOD 表示 HTTP 方法名称 (如 GET、POST、PUT 等),PATH 表示路径,HANDLER 表示路由处理函数。下面我们通过一个例子来演示一下基于 HTTP 方法的路由。
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- ------------ ----- ---- -- - --------------- --------- --- ------------------ ----- ---- -- - ------------- - ---- ---------- --- --------------------- ----- ---- -- - ------------- - --- ------- -- -------------------------- --- ------------------------ ----- ---- -- - ------------- - ------ ------- -- -------------------------- --- ---------------- -- -- - -------------------- --- --------- -- ---- -------- ---
在上述例子中,我们定义了四个基于 HTTP 方法的路由,分别为 GET、POST、PUT 和 DELETE。其中,PUT 和 DELETE 路由使用了路由参数 (Route parameters),稍后我们将会详细讲解路由参数的使用。
基于路径的路由
在 Express.js 中,除了基于 HTTP 方法创建路由之外,我们还可以通过 app 对象来创建基于路径的路由,其语法如下:
app.use(PATH, HANDLER);
其中,PATH 表示路径,HANDLER 表示路由处理函数。下面我们通过一个例子来演示一下基于路径的路由。
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- ------------------ -------------------------- ----------------- ----- ---- -- - --------------- ------- --- ---------------- -- -- - -------------------- --- --------- -- ---- -------- ---
在上述例子中,我们定义了两个基于路径的路由,分别为 /public 和 /users。其中,/public 路由使用了来自 express.static 中间件的处理函数,它会将 public 文件夹中的静态文件映射到 /public 路径下。/users 路由则简单地返回了一个字符串。
路由参数的传递
在 Express.js 中,我们可以使用路由参数来传递动态变量。路由参数使用冒号 (:) 来标识,其语法如下:
app.METHOD('/users/:userId', (req, res) => { res.send(`User Id is: ${req.params.userId}`); });
在上述例子中,我们定义了一个带有路由参数的路由,其中 :userId 就是路由参数。当客户端请求 /users/123 时,它将访问到这个路由,从而调用路由处理函数,并将路由参数传递给它。
除了 req.params 外,我们还可以使用 req.query 来获取通过查询字符串 (Query String) 传递的参数,以及 req.body 来获取通过 POST 请求体传递的参数。下面我们通过一个例子来演示一下如何获取这些参数。
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- ------------------------- ----- ---- -- - -------------- -- --- ----------------------- --- ----------------- ----- ---- -- - ----- ------- - ------------------ --------------- -- --- ------------- --- ------------------ ----- ---- -- - ----- -------- - ------------------ ----- -------- - ------------------ ------------------ --- ------------ -------- --- -------------- --- ---------------- -- -- - -------------------- --- --------- -- ---- -------- ---
在上述例子中,我们定义了三个路由,分别为带有路由参数的 GET 请求、带有查询字符串的 GET 请求以及带有 POST 请求体的 POST 请求。其中,我们通过 req.params、req.query 和 req.body 来获取对应的参数。
结语
通过本文的介绍,相信读者已经对 Express.js 中路由的使用方式以及路由参数的传递有了一定的了解。在实际开发中,路由是非常重要的一部分,因此我们应该充分了解路由的相关知识,以此来提高我们的开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6797310d504e4ea9bde3c14b