Node.js之Express路由中间件
2021-03-20 22:25
标签:send func bsp 基于 处理 插入 baidu 路由 机制 1、Express框架 ①介绍:基于Node.js平台,快速,开放,极简的web开发框架。 ②安装 node环境下,命令:npm i express --save ③入门使用 2、路由 所谓路由,就是如何处理HTTP请求中的路径部分。比如“http://baidu.com/users/user”这个URL,路由将决定怎么处理/users/user这个路径。 上面代码里的app.get()调用,实际上就是一条路由,指定“/users/user”这个路径由get的第二个参数所代表的函数来处理。 3、路由句柄 可以为请求处理提供多个回调函数,其行为类似中间件。唯一的区别是这些回调函数有可能调用 路由句柄有多种形式,可以是一个函数、一个函数数组,或者是两者混合。 Ⅰ、使用一个回调函数处理: Ⅱ、使用一个函数数组处理: 注:next用于执行下一个回掉函数,如果我们将回掉函数中任一next()给去掉,再次请求时,那么会一直处于挂起的状态,这是由于没有执行next函数,那么回掉函数不继续往下执行,这样就导致了没有对应的响应返回客户端;next(‘route‘) 用于执行下一个相同路由。 4、中间件 所谓中间件,就是在收到请求后和发送响应之前这个阶段执行的一些函数。 要在一条路由的处理链上插入中间件,可以使用express对象的use方法。 Ⅰ、内置中间件(express.static()) 可以处理当前目录下的静态文件资源。 Ⅱ、自定义中间件 index.js文件 注:Express还提供了一个叫做Router的对象,可以把Router直接传递给app.use,像使用中间件那样使用Router。另外你还可以使用router来处理针对GET、POST等的路由,也可以用它来添加中间件。 router.js文件 Node.js之Express路由中间件 标签:send func bsp 基于 处理 插入 baidu 路由 机制 原文地址:https://www.cnblogs.com/z-royal/p/12731178.html 1 // 引入
2 const expree = require("express");
3 // 实例化
4 const app = express();
5 // 监听“/world"的get请求,被访问,触发回调函数
6 app.get("/world",(req,res)=>{
7 res.send("hello");
8 })
9 // 监听端口
10 app.listen(2000);
1 // 引入
2 const expree = require("express");
3 // 实例化
4 const app = express();
5 // 监听“/world"的get请求,被访问,触发回调函数
6 app.get("/users/user",(req,res)=>{
7 res.send("hello");
8 })
9 // 监听端口
10 app.listen(2000);
next(‘route‘)
方法而略过其他路由回调函数。可以利用该机制为路由定义前提条件,如果在现有路径上继续执行没有意义,则可将控制权交给剩下的路径。1 const expree = require("express");
2 const app = express();
3 app.get("/",(req,res)=>{ // 回调函数处理
4 res.send("hello");
5 })
6 app.listen(2000,()=>{
7 console.log("listen 2000");
8 })
1 let cb1 = function(req,res,next){
2 console.log(‘1‘);
3 next();
4 };
5 let cb2 = function(req,res,next){
6 console.log(‘2‘);
7 next();
8 };
9 let cb3 = function(req,res,next){
10 console.log(3);
11 next();
12 };
13 let cb4 = function(req,res,next){
14 console.log(4);
15 res.send(‘Hello from 4‘);
16 };
17
18 app.get(‘/‘,[cb1,cb2]); // 数组处理
19 app.get(‘/‘,[cb3,cb4]); // 数组处理
1 const express = require("express");
2 const app = express();
3 // 处理静态资源
4 app.use(express.static("./public")); // use 使用中间件
5 app.listen(3000,()=>{
6 console.log("listen 3000...");
7 })
1 const express = require("express");
2 const url = require("url");
3 var myrouter =express.Router(); // 建立了一个路由的中间件,处理各种请求
4 myrouter.get("/one",(req,res)=>{
5 res.send("one...");
6 })
7 myrouter.get("/two",(req,res)=>{
8 res.send("two...");
9 })
10 module.exports = myrouter; // 导出,以便使用
1 const express = require("express");
2 const myrouter = require("./router") // 引入路由的中间件 引入目录默认引入的index.js文件
3 var app = express();
4 // 用staic 中间件处理静态资源
5 app.use(express.static("./public"));
6 app.use((req,res,next)=>{ // 拦截所有的请求
7 console.log(“hello");
8 next() //调用下一个中间件,切换到了app.use(myurouter)
9 })
10 app.use(myrouter); // 使用路由的中间件
11 app.listen(3000,()=>{
12 console.log("listen 3000....")
13 })