@belmonddev/catch-request-express-middleware 1.2.1 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +21 -8
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -98,13 +98,19 @@ const overrideHttpModule = (httpModule, requestSentCb) => {
|
|
|
98
98
|
};
|
|
99
99
|
|
|
100
100
|
const callResponseCb = (responseCb, res) => {
|
|
101
|
+
let body;
|
|
102
|
+
try {
|
|
103
|
+
body = /application\/json;?.*?$/.test(res.getHeaders()['content-type'])
|
|
104
|
+
? JSON.parse(res.bodyWritten)
|
|
105
|
+
: res.bodyWritten;
|
|
106
|
+
} catch (e) {
|
|
107
|
+
body = res.bodyWritten;
|
|
108
|
+
}
|
|
101
109
|
responseCb({
|
|
102
110
|
headers: res.getHeaders(),
|
|
103
111
|
statusCode: res.statusCode,
|
|
104
112
|
statusMessage: res.statusMessage,
|
|
105
|
-
body
|
|
106
|
-
? JSON.parse(res.bodyWritten)
|
|
107
|
-
: res.bodyWritten,
|
|
113
|
+
body,
|
|
108
114
|
});
|
|
109
115
|
};
|
|
110
116
|
|
|
@@ -113,7 +119,7 @@ const callReceivedCbs = (req, res, requestReceivedCb) => {
|
|
|
113
119
|
headers: req.headers,
|
|
114
120
|
method: req.method,
|
|
115
121
|
host: req.headers.host,
|
|
116
|
-
pathname: req.
|
|
122
|
+
pathname: req._parsedUrl.pathname,
|
|
117
123
|
params: req.params,
|
|
118
124
|
query: req.query,
|
|
119
125
|
body: req.body,
|
|
@@ -162,11 +168,18 @@ const catchExpressReceivedRequest = (req, res, requestReceivedCb) => {
|
|
|
162
168
|
}
|
|
163
169
|
};
|
|
164
170
|
|
|
165
|
-
const catchRequestExpressMiddleware = (
|
|
166
|
-
|
|
167
|
-
|
|
171
|
+
const catchRequestExpressMiddleware = (
|
|
172
|
+
requestReceivedCb = null,
|
|
173
|
+
requestSentCb = null
|
|
174
|
+
) => {
|
|
175
|
+
if (requestSentCb) {
|
|
176
|
+
overrideHttpModule(http, requestSentCb);
|
|
177
|
+
overrideHttpModule(https, requestSentCb);
|
|
178
|
+
}
|
|
168
179
|
return (req, res, next) => {
|
|
169
|
-
|
|
180
|
+
if (requestReceivedCb) {
|
|
181
|
+
catchExpressReceivedRequest(req, res, requestReceivedCb);
|
|
182
|
+
}
|
|
170
183
|
next();
|
|
171
184
|
};
|
|
172
185
|
};
|