gpt4 book ai didi

node.js - NestJS 相当于express res.locals

转载 作者:行者123 更新时间:2023-12-03 08:45:47 24 4
gpt4 key购买 nike

我正在构建一个基于 NestJS 的 API,我不知道如何存储来自中间件的数据并将它们获取到 Controller 中。

使用 Express,我只需:

// middleware
res.locals.foo = 'bar';
next();

// controller
user.foo = res.locals.foo; // 'bar'

对于 NestJS,Response 没有 locals 属性,而且我没有找到等效的属性。

最佳答案

你也可以在nestjs中使用本地变量。像这样

import { Request, Response, NextFunction } from 'express';
// other imports

@Injectable()
export class AuthMiddleware implements NestMiddleware {
async use(req: Request, res: Response, next: NextFunction) {

res.locals.token = 'Hello i am locals';

next();
}
}

Controller

import { Controller, Get, Response } from '@nestjs/common';


@Controller()
export class AppController {
constructor() {}


@Get('verify')
async verifyDid(@Response() res): Promise<string> {
console.log(res.locals);
return res;
}
}

应用中间件

export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer.apply(AuthMiddleware).forRoutes('*');
}
}

关于node.js - NestJS 相当于express res.locals,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61545092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com