【发布时间】:2021-01-09 22:38:26
【问题描述】:
我正在尝试创建一个中间件,将用户的 IP 设置为它为我们提供的 cloudflare 标头,用于应用程序的其余部分。这曾经适用于我的项目,但现在由于某种原因,它不起作用。
当我尝试导航到应用程序时,出现以下错误:
TypeError: Cannot set property ip of #<IncomingMessage> which has only a getter
at /media/chen/storage/development/urlshortener/index.ts:67:11
at Layer.handle [as handle_request] (/media/chen/storage/development/urlshortener/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/media/chen/storage/development/urlshortener/node_modules/express/lib/router/index.js:317:13)
at /media/chen/storage/development/urlshortener/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/media/chen/storage/development/urlshortener/node_modules/express/lib/router/index.js:335:12)
at next (/media/chen/storage/development/urlshortener/node_modules/express/lib/router/index.js:275:10)
at jsonParser (/media/chen/storage/development/urlshortener/node_modules/body-parser/lib/types/json.js:110:7)
at Layer.handle [as handle_request] (/media/chen/storage/development/urlshortener/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/media/chen/storage/development/urlshortener/node_modules/express/lib/router/index.js:317:13)
at /media/chen/storage/development/urlshortener/node_modules/express/lib/router/index.js:284:7
app.use((req, res, next) => {
req.ip = req.header('cf-connecting-ip') || req.ip; // Line 67, which the error is mentioning
next()
})
如果我应该包含我的其余代码,请告诉我。这就是除了app.listen 之外的所有路由、中间件和快速设置都包含在其中的承诺
我使用的是 Express 4.17.1
【问题讨论】:
标签: typescript express cloudflare