Express.js – app.use() 方法

该方法将指定的中间件函数挂载或放置在指定的路径中。仅当请求路径的基址与定义的路径匹配时,才会执行此中间件功能。app.use()

语法

app.use([path], callback, [callback])

参数

  • path -这是调用中间件函数的路径。路径可以是字符串、路径模式、正则表达式或所有这些的数组。

  • callback -这些是中间件函数或一系列中间件函数,它们的作用类似于中间件,但这些回调可以调用 next(路由)。

示例 1

创建一个名为“appUse.js”的文件并复制以下代码片段。创建文件后,使用命令“node appUse.js”运行此代码。

// app.use() 方法演示示例

// 导入 express 模块
const express = require('express');

// 初始化 express 和端口号
var app = express();

// 从 express 初始化路由器
var router = express.Router();
var PORT = 3000;

// 此方法将调用 next() 中间件
app.use('/api', function (req, res, next) {
   console.log('Time for main function: %d', Date.now())
   next();
})

// 会在中间件之后调用
app.get('/api', function (req, res) {
   console.log('Time for middleware function: %d', Date.now())
   res.send('Welcome to nhooo.com')
})

// 应用程序侦听以下端口
app.listen(PORT, function(err){
   if (err) console.log(err);
   console.log("Server listening on PORT", PORT);
});

现在,使用GET请求点击以下端点

http://localhost:3000/api
输出结果
C:\home\node>> node appUse.js
Server listening on PORT 3000
Time for main function: 1627490133904
Time for middleware function: 1627490133905

示例 2

让我们再看一个例子。

// app.use() 方法演示示例

// 导入 express 模块
const express = require('express');

// 初始化 express 和端口号
var app = express();

// 从 express 初始化路由器
var router = express.Router();
var PORT = 3000;

// 此方法将调用 next() 中间件
app.use('/', function (req, res, next) {
   console.log('Middleware will not be called')
})

// 会在中间件之后调用
app.get('/api', function (req, res) {
   console.log('Time for middleware function: %d', Date.now())
   res.send('Welcome to nhooo.com')
})

// 应用程序侦听以下端口
app.listen(PORT, function(err){
   if (err) console.log(err);
   console.log("Server listening on PORT", PORT);
});

现在,使用GET请求点击以下端点

http://localhost:3000/api
输出结果
C:\home\node>> node appUse.js
Server listening on PORT 3000
Middleware will not be called