读完上一篇文章后,让我们看看 expressjs 中的中间件类型,中间件有不同的风格(?),每种都有独特的用途:
1。应用级中间件: 这就像主要成分。您将其添加到整个应用程序中,它会根据每个请求运行。?
app.use((req, res, next) => { console.log('this runs on every request!'); next(); });
2。路由器级中间件:这更像是一个专业的浇头。它用于特定路线或路线组。?
const router = express.router(); router.use('/special', (req, res, next) => { console.log('special route middleware!'); next(); });
3。内置中间件: 这些就像 express 附带的预制酱料,例如用于解析 json 的express.json()。 ?
app.use(express.json());
4。错误处理中间件:这是厨师的秘密武器。它捕获任何错误并提供自定义响应。 ?
app.use((err, req, res, next) => { console.error(err.stack); res.status(500).send('something broke!'); });
中间件最酷的事情之一是您可以将它们堆叠在一起以创建复杂的工作流程。每个中间件函数都可以结束请求-响应周期,或者使用 next() 将控制权传递给下一个函数。这使得添加身份验证、日志记录、错误处理等功能变得很容易,就像在三明治中添加层一样。
以下是如何使用中间件来保护路由:
const authenticate = (req, res, next) => { if (req.isAuthenticated()) { return next(); } res.redirect('/login'); }; app.get('/dashboard', authenticate, (req, res) => { res.send('Welcome to your dashboard!'); });
在此示例中,身份验证中间件会在允许用户访问仪表板之前检查用户是否已通过身份验证。
*结论:掌握中间件??? *
中间件确实是 express.js 的秘密武器,它为您的 node.js 应用程序添加了多层功能。无论您是处理请求、管理响应还是捕获错误,掌握中间件都将使您的代码更干净、更有条理、更强大。
因此,下次您构建 express.js 应用程序时,请考虑可以使用中间件添加的功能。混合、匹配并创建您自己的秘密武器——这使您的应用程序独一无二!
快乐 c̶o̶o̶k̶i̶n̶g̶ 编码! ??