javascript - 为什么 Express 属性 ip 没有出现在 Object.keys(request) 中?

标签 javascript node.js http express

考虑以下代码:

const express = require('express');
const app = express();
app.get('/', function(request, response) {
    console.log(Object.keys(request));
    console.log(request.ip);
});
app.listen(1337);

在第一个日志中我们可以看到 ip 不是 request 的属性,但在第二个日志中打印了 ip。为什么会这样?

最佳答案

根据Express的源码

In this particular line

表示 ip 索引不在请求对象中,express 默认将该索引作为函数返回 trust proxy fn 的值并返回它通过传递给它一个 proxyaddr

Object.keys(Object) <- This only returns the indices that appear in the object.

那么 Express Object.keys(request) 的那些动态和自动生成的索引是如何找不到它的。

关于javascript - 为什么 Express 属性 ip 没有出现在 Object.keys(request) 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47876834/

相关文章:

javascript - 如何根据值更改标签中文本的颜色

javascript - Heroku 无法运行 Node ES6 代码

node.js - 如何以及何时使用谷歌云函数中的 promise 正确返回值?

node.js - 检查node.js中分配的最大内存大小

python - 在 web.py web 服务器中禁用缓存,忽略 HTTP header

javascript - Backbone 形式:选择字段的样式选项?

javascript - 在 javascript 中循环 document.getElementById

javascript - 回调内变量的范围

javascript - 嵌套http.request AngularJS后同时显示数据

http - 如何读取服务器日志文件?