为什么Express属性ip不出现在Object.keys(请求)中?
考虑以下代码:
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索引不在请求对象中,默认表示将该索引作为函数返回信任代理fn的值,并通过传递proxyaddr返回它。
Object.keys(Object) <- This only returns the indices that appear in the object.
那么Express Object.keys(请求)的动态和自动生成的索引如何找不到它。