当前位置: 首页 > news >正文

广告多的网站找专题页面那个网站好

广告多的网站,找专题页面那个网站好,申请个人网站和企业官网有什么不同,有什么网站可以免费看电影前言 NestJS 作为一个强大的 Node.js 框架#xff0c;允许你通过中间件对请求和响应进行处理。中间件的概念在其他许多框架中也存在#xff0c;它们在请求处理流程的早期执行#xff0c;因此非常适合执行如日志记录、请求验证、设置响应头等任务。 在这篇教程中#xff0…前言 NestJS 作为一个强大的 Node.js 框架允许你通过中间件对请求和响应进行处理。中间件的概念在其他许多框架中也存在它们在请求处理流程的早期执行因此非常适合执行如日志记录、请求验证、设置响应头等任务。 在这篇教程中我将通过一个简单的示例展示如何在 NestJS 应用中创建和使用自定义中间件。 使用步骤 第一步创建中间件 在 NestJS 中创建中间件很简单你只需要创建一个实现了 NestMiddleware 接口的类。这个类将包含一个 use 方法该方法接收 request、response 对象和 next 函数。 import { Injectable, NestMiddleware } from nestjs/common; import { Request, Response, NextFunction } from express;Injectable() export class LoggingMiddleware implements NestMiddleware {use(req: Request, res: Response, next: NextFunction) {console.log([${new Date().toISOString()}] Request made to: ${req.path});next();} } 在这个例子中LoggingMiddleware 类会记录请求到达的时间和路径。 第二步注册中间件 接下来你需要在模块中注册这个中间件。这通常在模块的 configure 方法中完成你需要实现 NestModule 接口并定义这个方法。 import { Module, NestModule, MiddlewareConsumer } from nestjs/common;Module({}) export class AppModule implements NestModule {configure(consumer: MiddlewareConsumer) {consumer.apply(LoggingMiddleware).forRoutes(*); // 应用到所有路由} } 在这里我们使用 MiddlewareConsumer 的 apply 方法来注册中间件并通过 forRoutes 指定中间件应用的路径。在这个例子中中间件将应用于所有路由。 第三步测试中间件 一旦你注册了中间件它就会在每个请求到来时执行。要测试它你可以启动你的 NestJS 应用并向任意端点发送请求。 npm run start 然后打开一个新的命令行窗口发送一个请求使用 curl 或者任何 API 测试工具 curl http://localhost:3000/your-endpoint你应该可以在 NestJS 应用的控制台输出中看到日志行类似于 [2024-01-01T12:00:00.000Z] Request made to: /your-endpoint高级使用 中间件不仅仅限于记录日志。你可以利用中间件做很多有用的事情比如 请求验证: 确认请求是否包含所需的凭证或参数。速率限制: 限制来自同一来源的请求频率以预防滥用。CORS 设置: 在跨域请求中设置必要的头信息以支持安全的跨域交互。 记住中间件执行顺序很重要。如果你注册了多个中间件它们会按顺序执行。这意味着如果第一个中间件不调用 next()后续的中间件和路由处理器都不会被执行。 一、请求验证 假设我们有一个API端点 /secure它需要验证请求是否带有有效的API密钥。我们可以创建一个中间件来校验请求头中的 x-api-key 字段。 import { Injectable, NestMiddleware, UnauthorizedException } from nestjs/common; import { Request, Response, NextFunction } from express;Injectable() export class ApiKeyMiddleware implements NestMiddleware {private readonly VALID_API_KEY secret;use(req: Request, res: Response, next: NextFunction) {const apiKey req.headers[x-api-key];if (apiKey apiKey this.VALID_API_KEY) {next();} else {throw new UnauthorizedException(Invalid API Key);}} } 注册这个中间件 configure(consumer: MiddlewareConsumer) {consumer.apply(ApiKeyMiddleware).forRoutes(/secure); } 任何请求 /secure 端点的客户端都需要提供有效的API密钥否则请求会被拒绝。 二、速率限制 为了防止滥用你可能需要限制客户端在一定时间内能够发送到某个端点的请求数量。这样的中间件可以利用第三方库如 express-rate-limit 实现。 import rateLimit from express-rate-limit;export function RateLimiterMiddleware() {return rateLimit({windowMs: 15 * 60 * 1000, // 15分钟max: 100, // 限制每个IP在15分钟内最多100个请求}); } 注册中间件 configure(consumer: MiddlewareConsumer) {consumer.apply(RateLimiterMiddleware()).forRoutes(/*); // 适用于所有路由 } 这将会对所有请求施加速率限制每个IP地址每15分钟只允许最多100个请求。 三、CORS 设置 跨源资源共享CORS是一种安全特性限制了网页上可以加载和使用哪些资源。如果你想允许来自特定来源的请求你可以使用中间件来设置CORS相关的响应头。 虽然 NestJS 提供了内置的CORS支持但如果你需要更高级的配置可以自定义CORS中间件例如 import { Injectable, NestMiddleware } from nestjs/common; import { Request, Response, NextFunction } from express;Injectable() export class CorsMiddleware implements NestMiddleware {use(req: Request, res: Response, next: NextFunction) {res.header(Access-Control-Allow-Origin, https://example.com);res.header(Access-Control-Allow-Methods, GET, POST, OPTIONS);res.header(Access-Control-Allow-Headers, Content-Type, Authorization);next();} } 注册中间件 configure(consumer: MiddlewareConsumer) {consumer.apply(CorsMiddleware).forRoutes(/*); // 适用于所有路由 } 这个简单的CORS中间件允许来自 https://example.com 的请求并允许 GET、POST 和 OPTIONS 方法同时允许 Content-Type 和 Authorization 请求头。 结论 中间件是 NestJS 框架灵活性的关键组成部分能够通过简单有效的方式实现请求的预处理。上面介绍的高级使用方式包括请求验证、速率限制和CORS设置都是实际应用中常见并且非常实用的场景。合理地使用中间件可以让你的应用更加安全和稳定同时提高用户体验。 结论 中间件是 NestJS 框架灵活性的关键组成部分能够通过简单有效的方式实现请求的预处理。通过创建 NestMiddleware 接口的实现类你可以在请求处理链中插入自己的逻辑。注册中间件方法是直观而灵活的让你可以精确控制中间件的应用范围。
文章转载自:
http://www.morning.ryrpq.cn.gov.cn.ryrpq.cn
http://www.morning.rjrlx.cn.gov.cn.rjrlx.cn
http://www.morning.qrqg.cn.gov.cn.qrqg.cn
http://www.morning.fksrg.cn.gov.cn.fksrg.cn
http://www.morning.lizpw.com.gov.cn.lizpw.com
http://www.morning.zmbzl.cn.gov.cn.zmbzl.cn
http://www.morning.mdwlg.cn.gov.cn.mdwlg.cn
http://www.morning.fmznd.cn.gov.cn.fmznd.cn
http://www.morning.gpsrk.cn.gov.cn.gpsrk.cn
http://www.morning.xjmpg.cn.gov.cn.xjmpg.cn
http://www.morning.bfhfb.cn.gov.cn.bfhfb.cn
http://www.morning.tqlhn.cn.gov.cn.tqlhn.cn
http://www.morning.fbzdn.cn.gov.cn.fbzdn.cn
http://www.morning.dnbhd.cn.gov.cn.dnbhd.cn
http://www.morning.pqxjq.cn.gov.cn.pqxjq.cn
http://www.morning.txhls.cn.gov.cn.txhls.cn
http://www.morning.tkzrh.cn.gov.cn.tkzrh.cn
http://www.morning.hmktd.cn.gov.cn.hmktd.cn
http://www.morning.cjmmn.cn.gov.cn.cjmmn.cn
http://www.morning.mwqbp.cn.gov.cn.mwqbp.cn
http://www.morning.zlgbx.cn.gov.cn.zlgbx.cn
http://www.morning.pghfy.cn.gov.cn.pghfy.cn
http://www.morning.synkr.cn.gov.cn.synkr.cn
http://www.morning.ptzbg.cn.gov.cn.ptzbg.cn
http://www.morning.lhjmq.cn.gov.cn.lhjmq.cn
http://www.morning.pqjpw.cn.gov.cn.pqjpw.cn
http://www.morning.lwyqd.cn.gov.cn.lwyqd.cn
http://www.morning.tnwgc.cn.gov.cn.tnwgc.cn
http://www.morning.kfcfq.cn.gov.cn.kfcfq.cn
http://www.morning.deupp.com.gov.cn.deupp.com
http://www.morning.jgcrr.cn.gov.cn.jgcrr.cn
http://www.morning.hjssh.cn.gov.cn.hjssh.cn
http://www.morning.ccyjt.cn.gov.cn.ccyjt.cn
http://www.morning.tqrbl.cn.gov.cn.tqrbl.cn
http://www.morning.lfdmf.cn.gov.cn.lfdmf.cn
http://www.morning.krbjb.cn.gov.cn.krbjb.cn
http://www.morning.phgz.cn.gov.cn.phgz.cn
http://www.morning.jspnx.cn.gov.cn.jspnx.cn
http://www.morning.lkjzz.cn.gov.cn.lkjzz.cn
http://www.morning.plqqp.cn.gov.cn.plqqp.cn
http://www.morning.fnrkh.cn.gov.cn.fnrkh.cn
http://www.morning.fyglr.cn.gov.cn.fyglr.cn
http://www.morning.dcdhj.cn.gov.cn.dcdhj.cn
http://www.morning.clqpj.cn.gov.cn.clqpj.cn
http://www.morning.c7512.cn.gov.cn.c7512.cn
http://www.morning.fyglg.cn.gov.cn.fyglg.cn
http://www.morning.lcbgf.cn.gov.cn.lcbgf.cn
http://www.morning.mzhjx.cn.gov.cn.mzhjx.cn
http://www.morning.wlqbr.cn.gov.cn.wlqbr.cn
http://www.morning.wrlqr.cn.gov.cn.wrlqr.cn
http://www.morning.zcqtr.cn.gov.cn.zcqtr.cn
http://www.morning.gwqq.cn.gov.cn.gwqq.cn
http://www.morning.ftznb.cn.gov.cn.ftznb.cn
http://www.morning.jzgxp.cn.gov.cn.jzgxp.cn
http://www.morning.tzmjc.cn.gov.cn.tzmjc.cn
http://www.morning.yckwt.cn.gov.cn.yckwt.cn
http://www.morning.tqrbl.cn.gov.cn.tqrbl.cn
http://www.morning.ccphj.cn.gov.cn.ccphj.cn
http://www.morning.msxhb.cn.gov.cn.msxhb.cn
http://www.morning.cthkh.cn.gov.cn.cthkh.cn
http://www.morning.bpkqd.cn.gov.cn.bpkqd.cn
http://www.morning.bmmhs.cn.gov.cn.bmmhs.cn
http://www.morning.rdxp.cn.gov.cn.rdxp.cn
http://www.morning.pwhjr.cn.gov.cn.pwhjr.cn
http://www.morning.krkwh.cn.gov.cn.krkwh.cn
http://www.morning.wqkfm.cn.gov.cn.wqkfm.cn
http://www.morning.mnkhk.cn.gov.cn.mnkhk.cn
http://www.morning.wscfl.cn.gov.cn.wscfl.cn
http://www.morning.jrlxz.cn.gov.cn.jrlxz.cn
http://www.morning.xsrnr.cn.gov.cn.xsrnr.cn
http://www.morning.mcjxq.cn.gov.cn.mcjxq.cn
http://www.morning.fygbq.cn.gov.cn.fygbq.cn
http://www.morning.fkyrk.cn.gov.cn.fkyrk.cn
http://www.morning.hksxq.cn.gov.cn.hksxq.cn
http://www.morning.kltsn.cn.gov.cn.kltsn.cn
http://www.morning.jxscp.cn.gov.cn.jxscp.cn
http://www.morning.llqch.cn.gov.cn.llqch.cn
http://www.morning.dnycx.cn.gov.cn.dnycx.cn
http://www.morning.dncgb.cn.gov.cn.dncgb.cn
http://www.morning.plxnn.cn.gov.cn.plxnn.cn
http://www.tj-hxxt.cn/news/243165.html

相关文章:

  • 如何在网站源码做授权西双版纳网站制作公司
  • 企业网站 费用市场运营和市场营销的区别
  • 网站和app的关系wordpress自动回复
  • 成都 企业网站建设电商平面设计教程
  • 郑州企业网站推广wordpress中的联系方式
  • 落实网站建设培训班精神wordpress会员可见主题
  • 织梦 商城网站营销型网站建设价格是多少
  • 两支队伍建设专题网站南通优普企业网站建设
  • 雄安建设网站制作360信息流广告平台
  • 购物网站前端浮动特效怎么做磁力狗在线搜索
  • 网上购物网站开发背景动漫制作专业的学校
  • 网站做菠菜苏州高新区网页设计
  • 福田区住房和建设局网站栾川网站建设
  • 专做polo衫的网站电子商务的分类
  • 企业wap网站源码怎么推广网站建设业务
  • iphone网站wordpress 置顶图标
  • 柯桥教育网站建设网络推广简历
  • 网站建设案例价格php如何做视频网站
  • 蕲春县住房和城乡建设局网站wordpress增加登录账户
  • 泰安网站制作工作室网上注册公司在哪办
  • 宁波慈溪网站建设周口seo公司
  • 网站建设与安全管理以下五项中哪项是网络营销的特点
  • 简约式网站汉中微信网站建设
  • vr全景网站怎么做免费做网站哪个好
  • 四川公司网站建设招标分类网站发布信息有生意做吗
  • 怎么选择邯郸做网站西安都蓝网站建设
  • 网站设计与建设的公司汕头市道路建设网站
  • 长春网站制作教程app线上推广是什么工作
  • 宁波网站建设工作室phpcms仿站
  • 高校支付网站建设费需要入无形资产阜城县网站建设