小编Ome*_*ave的帖子

将属性添加到快速请求对象

我正在尝试向 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)

javascript express typescript nestjs

3
推荐指数
1
解决办法
4639
查看次数

标签 统计

express ×1

javascript ×1

nestjs ×1

typescript ×1