【发布时间】:2020-04-08 03:39:51
【问题描述】:
我正在尝试向 Express 请求对象添加属性“forwardingUrl”。
我尝试通过创建文件 ./typing.d.ts 来合并声明:
declare namespace Express {
export interface Request {
forwardingUrl: string;
}
}
在编辑器中我可以使用该属性并访问它,但是当我编译时出现以下错误:
Property 'forwardingUrl' does not exist on type 'Request<ParamsDictionary>'.
我错过了什么?
编辑
我得到错误的代码:
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 = '';
}
}
}
【问题讨论】:
-
请求已经存在 developer.mozilla.org/en-US/docs/Web/API/Request 这是 Request
但你是 Express.Request。 -
也存在@types/express npmjs.com/package/@types/express。
-
Request
扩展了 Request 所以它不应该工作吗? -
@Zydnar 我需要在 express.request 中添加一个属性
-
但是
export interface Request {没有任何“扩展”。您能否包含出现错误的代码,同时显示导入。
标签: javascript typescript express nestjs