-
Notifications
You must be signed in to change notification settings - Fork 7
Closed
Description
一. ip
方法中 在没有指定 ipHeader
的情况下, 跑了一个循环去检测请求头中的字段, 在循环中根据条件给 @$ip
赋值, 但你目前的代码最终还是把 @$ip
赋值成了 @req.socket.remoteAddress
.
所以不清楚你这里是想实现什么?
(是不是后面那个少了一个if
, 用于在请求头中没获取到的时候的一个补救措施?)
二. 第9行的 options = {}
作用域的一个小情况. Request
的所有实例共用这同一个变量, 这个变量自引入 Request
这个类的时候就开始创建了, 且始终 hold
着最后一个 实例 在创建时传递的参数 opt
.
建议的做法是 将 opt
赋值给当前 实例(即 this
) 的一个属性(比如 @options
, 然后在使用的时候使用 @options
来获取参数(目前该变量只在 ip
方法中被使用), 这样的好处是参数会跟着实例一起被回收.
三. Response
中定义的 options
虽然有赋值, 但无人使用, 应该是为后续做准备, 但应也注意一下, 与上面第2条有同样的情况.
四. http
中的 assets
方法因对 URL中的 \.{2,}
全部替换为空(应该是为了防止跳上级目录), 将会导致当文件名中 有 ...
这样的字符时, 读取不到该文件. 所以正确的做法是, 仅对 目录
这一层做替换, 即排除掉要读取的文件名(因为文件名中带有 ....
这样的字符是合法的).
Metadata
Metadata
Assignees
Labels
No labels