Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
request-proxy
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Jira
Jira
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ui
request-proxy
Commits
e1f3879a
Commit
e1f3879a
authored
Jan 12, 2018
by
xzj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pipe支持bodyParser
parent
6c8b87b8
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
37 additions
and
19 deletions
+37
-19
index.js
index.js
+36
-18
package.json
package.json
+1
-1
No files found.
index.js
View file @
e1f3879a
'
use strict
'
const
request
=
require
(
'
request
'
)
const
debug
=
require
(
'
debug
'
)(
'
request-proxy
'
)
const
qs
=
require
(
'
querystring
'
)
const
Agent
=
require
(
'
agentkeepalive
'
);
const
HttpsAgent
=
require
(
'
agentkeepalive
'
).
HttpsAgent
;
...
...
@@ -63,7 +62,7 @@ module.exports = function (options) {
ctx
.
req
.
connection
.
setNoDelay
(
true
)
ctx
.
curl
=
function
(
option
,
extra
)
{
if
(
typeof
option
===
'
string
'
)
{
option
=
{
ur
i
:
option
}
option
=
{
ur
l
:
option
}
}
if
(
!
option
.
method
)
{
...
...
@@ -74,11 +73,7 @@ module.exports = function (options) {
extra
=
Object
.
assign
({},
extraDefault
,
extra
)
if
(
!
isProduction
&&
ctx
.
request
.
query
[
'
_ip_
'
])
{
if
(
option
.
url
)
{
option
.
url
=
rewriteUrl
(
option
.
url
,
ctx
.
request
.
query
[
'
_ip_
'
])
}
else
{
option
.
uri
=
rewriteUrl
(
option
.
uri
,
ctx
.
request
.
query
[
'
_ip_
'
])
}
option
.
url
=
rewriteUrl
(
option
.
url
,
ctx
.
request
.
query
.
_ip_
)
}
debug
(
option
)
...
...
@@ -110,36 +105,59 @@ module.exports = function (options) {
ctx
.
pipe
=
function
(
option
)
{
if
(
typeof
option
===
'
string
'
)
{
option
=
{
ur
i
:
option
}
option
=
{
ur
l
:
option
}
}
option
=
Object
.
assign
({},
pipeDefault
,
option
)
if
(
!
isProduction
&&
ctx
.
request
.
query
[
'
_ip_
'
])
{
if
(
option
.
url
)
{
option
.
url
=
rewriteUrl
(
option
.
url
,
ctx
.
request
.
query
[
'
_ip_
'
])
}
else
{
option
.
uri
=
rewriteUrl
(
option
.
uri
,
ctx
.
request
.
query
[
'
_ip_
'
])
}
option
.
url
=
rewriteUrl
(
option
.
url
,
ctx
.
request
.
query
.
_ip_
)
}
if
(
!
option
.
method
)
{
option
.
method
=
ctx
.
method
}
debug
(
option
)
if
(
!
option
.
agent
&&
!
/^https/
.
test
(
option
.
url
))
{
option
.
agent
=
httpAgent
}
else
if
(
!
option
.
agent
&&
/^https/
.
test
(
option
.
url
))
{
option
.
agent
=
httpsAgent
}
return
new
Promise
(
function
(
resolve
,
reject
)
{
let
r
=
ctx
.
req
.
pipe
(
request
(
option
,
function
(
err
,
response
)
{
let
send
=
function
()
{
return
request
(
option
,
function
(
err
,
response
)
{
if
(
option
.
time
&&
options
.
logger
)
{
options
.
logger
.
info
(
option
.
url
||
option
.
uri
,
JSON
.
stringify
(
response
&&
response
.
timings
||
''
))
}
}))
})
}
if
(
ctx
.
method
===
'
POST
'
&&
ctx
.
is
(
'
json
'
,
'
urlencoded
'
)
&&
ctx
.
request
.
body
)
{
if
(
ctx
.
is
(
'
urlencoded
'
))
{
option
.
form
=
ctx
.
request
.
rawBody
}
else
if
(
ctx
.
is
(
'
json
'
))
{
option
.
body
=
ctx
.
request
.
rawBody
}
option
.
headers
=
ctx
.
request
.
headers
return
new
Promise
(
function
(
resolve
,
reject
)
{
let
r
=
send
()
r
.
on
(
'
error
'
,
function
(
err
)
{
console
.
error
(
err
)
reject
(
err
);
})
.
on
(
'
response
'
,
function
()
{
ctx
.
respond
=
false
r
.
pipe
(
ctx
.
res
)
resolve
({})
})
})
}
return
new
Promise
(
function
(
resolve
,
reject
)
{
let
r
=
ctx
.
req
.
pipe
(
send
())
r
.
on
(
'
error
'
,
function
(
err
)
{
console
.
error
(
err
)
reject
(
err
);
})
.
on
(
'
response
'
,
function
()
{
...
...
package.json
View file @
e1f3879a
{
"name"
:
"request-proxy"
,
"version"
:
"
1.1.2
"
,
"version"
:
"
2.0.0
"
,
"description"
:
""
,
"main"
:
"index.js"
,
"scripts"
:
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment