1
1
Form = require ' formidable'
2
2
Url = require ' url'
3
3
Cookie = require ' cookie'
4
+ QueryString = require ' querystring'
4
5
5
6
6
7
class Request
@@ -20,10 +21,10 @@ class Request
20
21
@uri = parts .href
21
22
@path = if parts .pathname ? then parts .pathname else ' /'
22
23
@port = @req .socket .remotePort
23
- @agent = @ header ' user-agent'
24
+ @agent = @ header ' user-agent' , ' '
24
25
25
26
# detect host
26
- host = @ header ' host'
27
+ host = @ header ' host' , ' '
27
28
matched = host .match / ^ \s * ([_0-9a-z -\. ] + )/
28
29
@host = if matched then matched[1 ] else null
29
30
@@ -64,24 +65,24 @@ class Request
64
65
@$ip
65
66
66
67
67
- header : (key , val = null ) ->
68
+ header : (key , val = undefined ) ->
68
69
key = key .toLowerCase ()
69
70
if @req .headers [key] then @req .headers [key] else val
70
71
71
72
72
- cookie : (key , val = null ) ->
73
+ cookie : (key , val = undefined ) ->
73
74
if @$cookies [key]? then @$cookies [key] else val
74
75
75
76
76
77
is : (query ) ->
77
- required = querystring .parse query
78
+ required = QueryString .parse query
78
79
79
80
for k, v of required
80
- if v? && v .length > 0
81
- return yes if v != @ get k
81
+ if v .length > 0
82
+ return no if v != @ get k
82
83
else
83
- return yes if (@ get k) is null
84
- no
84
+ return no if (@ get k) is undefined
85
+ yes
85
86
86
87
87
88
set : (key , val = null ) ->
@@ -91,12 +92,12 @@ class Request
91
92
@$params [key] = val
92
93
93
94
94
- get : (key , defaults = null ) ->
95
+ get : (key , defaults = undefined ) ->
95
96
if @$params [key]? then @$params [key] else defaults
96
97
97
98
98
99
file : (key ) ->
99
- if @$files [key]? then @$files [key] else null
100
+ if @$files [key]? then @$files [key] else undefined
100
101
101
102
102
103
module .exports = Request
0 commit comments