Ome*_*ave 3 javascript express typescript nestjs
我正在尝试向 Express 请求对象添加属性“forwardingUrl”。
我尝试通过创建文件 ./typing.d.ts 进行声明合并:
declare namespace Express {
export interface Request {
forwardingUrl: string;
}
}
Run Code Online (Sandbox Code Playgroud)
在编辑器中,我可以使用该属性并访问它,但是当我编译时,出现以下错误:
Property 'forwardingUrl' does not exist on type 'Request<ParamsDictionary>'.
Run Code Online (Sandbox Code Playgroud)
我缺少什么?
编辑
我收到错误的代码:
import { Middleware, Request } from '@tsed/common';
import { Request as ExpressRequest } from 'express';
@Middleware()
export class Wso2ForwardingUrlParser {
async use(@Request() request: ExpressRequest) {
if (request.header('X_FORWARDED_HOST') && request.header('X_FORWARDED_PREFIX')) {
request.forwardingUrl = `https://${request.header('X_FORWARDED_HOST')}${request.header('X_FORWARDED_PREFIX')}`;
} else {
request.forwardingUrl = '';
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
添加扩展 Request 的新模型
import {Request} from "@tsed/common";
export interface RequestModel extends Request {
forwardingUrl: string
}
Run Code Online (Sandbox Code Playgroud)
然后在方法中使用它
import { Middleware, Request } from '@tsed/common';
import { Request as ExpressRequest } from 'express';
@Middleware()
export class Wso2ForwardingUrlParser {
async use(@Request() request: RequestModel) {
if (request.header('X_FORWARDED_HOST') && request.header('X_FORWARDED_PREFIX')) {
request.forwardingUrl = `https://${request.header('X_FORWARDED_HOST')}${request.header('X_FORWARDED_PREFIX')}`;
} else {
request.forwardingUrl = '';
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4639 次 |
| 最近记录: |