【发布时间】:2018-09-15 05:22:05
【问题描述】:
我有一个节点代码库,我想将它迁移到 typescript。所以我做的第一件事就是添加 //@ts-check 并修复 typescript 的问题。除了这个问题,我可以解决所有问题。
为了将发送过多冗余请求的客户端列入黑名单,我需要客户端的 IP 地址。所以我使用下面的中间件将客户端的ip地址添加到请求对象中。
app.use((request, _, next) => {
const ip = request.get('x-real-ip')
if (ip) {
Object.defineProperties(request, { clientIP: { value: ip, writable: false } })
} else {
Object.defineProperties(request, { clientIP: { value:request.socket.remoteAddress, writable: false } })
}
next()
})
但是当我想在其他地方访问 clientIP 属性时,typescript 会给出以下错误:
“请求”类型上不存在属性“clientIP”。
我应该怎么做才能让这个错误消失? 谢谢
【问题讨论】:
标签: node.js typescript express