性能优化之node中间件耗时

背景

中间件在node框架中是很基本的套件,使用不当很容易对页面性能造成影响。除了node服务端外,前端做的SSR项目也要特别重视这块

哪些场景会造成中间件耗时特别严重?

罪魁祸首是:await阻塞

举个例子:

1.如何得到 响应的耗时?把下面这个中间件放在所有中间件的最前面app.use(async (ctx, next) => {const t = +new Date();await next();console.log('响应的耗时', +new Date() - t);}); 2.当没有await阻塞时,服务端处理的速度一般都是非常快的

3.当存在一个中间件加了await阻塞后,例如:app.use(async (ctx, next) => {await new Promise(r => {setTimeout(() => {r();}, 2000);});await next();});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node Redis 中间件是一个用于连接和操作 Redis 数据库的中间件。它提供了简单、方便的 API,使得在 Node.js 应用程序中使用 Redis 变得更加容易。 使用 Node Redis 中间件,你可以轻松地与 Redis 数据库进行交互,执行各种操作,如设置和获取键值对,发布和订阅消息,以及执行复杂的操作如事务和管道等。它还提供了连接池和集群支持,以优化性能和可扩展性。 以下是一个简单的示例,演示了如何在 Express 应用程序中使用 Node Redis 中间件: ```javascript const express = require('express'); const redis = require('redis'); const app = express(); const client = redis.createClient(); // 设置中间件 app.use((req, res, next) => { req.redis = client; next(); }); // 示例路由处理程序 app.get('/get/:key', (req, res) => { const { key } = req.params; req.redis.get(key, (err, value) => { if (err) { res.status(500).send('Error retrieving value from Redis'); } else { res.send(`Value for key ${key}: ${value}`); } }); }); app.listen(3000, () => { console.log('Server listening on port 3000'); }); ``` 在上面的示例中,我们创建了一个 Redis 客户端,并将其作为中间件附加到 Express 应用程序中。然后,在路由处理程序中,我们可以通过 `req.redis` 访问 Redis 客户端,并执行相应的操作。 需要注意的是,这只是一个简单的示例,你可以根据具体需求和业务逻辑来扩展和定制中间件的功能。同时,确保在使用中间件时处理错误和异常情况,以保证应用程序的稳定性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值