router.use app.use
时间: 2024-11-05 22:30:10 浏览: 5
`router.use` 和 `app.use` 都是在不同的 Web 框架中用于路由功能的方法,它们的作用是将一个处理函数添加到路由中间件堆栈中。当请求到达特定的 URL 路径时,这些中间件会被依次执行。
在 Node.js 的 Express 框架中,`app.use(path, handler)` 是添加全局中间件的方式,无论请求的URL是否匹配该路径,这个中间件都会对所有请求生效。例如:
```javascript
const express = require('express');
const app = express();
// 这个中间件会捕获所有的404错误,并返回自定义的错误页面
app.use((req, res, next) => {
// 如果遇到404,跳转到错误处理器
if (res.statusCode === 404) {
return res.status(404).send('Not Found');
}
// 如果不是404,继续执行下一个中间件
next();
});
app.listen(3000, () => {
console.log('App is listening on port 3000');
});
```
而在 Vue Router 或 React Router 等前端路由库中,`router.use` 通常用于配置路由级别的中间件,它会在每个组件或导航守卫之前运行。比如:
```javascript
import { createRouter, createWebHistory } from 'vue-router';
import Home from './views/Home.vue';
const router = createRouter({
history: createWebHistory('/'),
routes: [
{ path: '/', component: Home },
// 更复杂的路由配置...
],
use: (route) => {
route.beforeEach((to, from, next) => {
// 在每次路由切换前执行的逻辑
// ...
next(); // 继续导航或阻止导航
});
},
});
```
阅读全文