最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

为什么Express属性ip不出现在Object.keys(请求)中?

IT培训 admin 6浏览 0评论

为什么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(请求)的动态和自动生成的索引如何找不到它。

为什么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(请求)的动态和自动生成的索引如何找不到它。

发布评论

评论列表 (0)

  1. 暂无评论