ultimate-express 1.0.0 → 1.0.2

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.
Files changed (191) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +2 -1
  3. package/package.json +8 -4
  4. package/.github/workflows/test.yml +0 -27
  5. package/tests/index.js +0 -64
  6. package/tests/parts/.test/index.html +0 -11
  7. package/tests/parts/big.jpg +0 -0
  8. package/tests/parts/index.art +0 -12
  9. package/tests/parts/index.dot +0 -12
  10. package/tests/parts/index.ejs +0 -12
  11. package/tests/parts/index.handlebars +0 -2
  12. package/tests/parts/index.html +0 -12
  13. package/tests/parts/index.mustache +0 -12
  14. package/tests/parts/index.pug +0 -6
  15. package/tests/parts/index.swig +0 -12
  16. package/tests/parts/layouts/main.handlebars +0 -12
  17. package/tests/preload.cjs +0 -5
  18. package/tests/singular.js +0 -41
  19. package/tests/tests/app/app-engine.js +0 -8
  20. package/tests/tests/app/app-on-mount.js +0 -24
  21. package/tests/tests/app/app-path.js +0 -21
  22. package/tests/tests/app/app-route.js +0 -30
  23. package/tests/tests/app/options.js +0 -16
  24. package/tests/tests/app/setting-inheritance.js +0 -16
  25. package/tests/tests/engines/art-template.js +0 -33
  26. package/tests/tests/engines/dot.js +0 -28
  27. package/tests/tests/engines/ejs.js +0 -25
  28. package/tests/tests/engines/handlebars.js +0 -28
  29. package/tests/tests/engines/mustache.js +0 -28
  30. package/tests/tests/engines/pug.js +0 -25
  31. package/tests/tests/engines/swig.js +0 -28
  32. package/tests/tests/errors/error-handling-middleware.js +0 -22
  33. package/tests/tests/errors/next-error-optimized.js +0 -26
  34. package/tests/tests/errors/next-error.js +0 -26
  35. package/tests/tests/errors/unexpected-error-handling.js +0 -18
  36. package/tests/tests/listen/listen-random.js +0 -11
  37. package/tests/tests/listen/listen-specific.js +0 -17
  38. package/tests/tests/middlewares/body-json.js +0 -31
  39. package/tests/tests/middlewares/body-raw-deflate.js +0 -43
  40. package/tests/tests/middlewares/body-raw-gzip.js +0 -43
  41. package/tests/tests/middlewares/body-raw.js +0 -41
  42. package/tests/tests/middlewares/body-text.js +0 -27
  43. package/tests/tests/middlewares/body-urlencoded.js +0 -30
  44. package/tests/tests/middlewares/cookie-parser-signed.js +0 -31
  45. package/tests/tests/middlewares/cookie-parser.js +0 -28
  46. package/tests/tests/middlewares/cookie-session.js +0 -40
  47. package/tests/tests/middlewares/cors.js +0 -29
  48. package/tests/tests/middlewares/errorhandler.js +0 -26
  49. package/tests/tests/middlewares/express-fileupload-temp.js +0 -46
  50. package/tests/tests/middlewares/express-fileupload.js +0 -28
  51. package/tests/tests/middlewares/express-rate-limit.js +0 -33
  52. package/tests/tests/middlewares/express-session.js +0 -37
  53. package/tests/tests/middlewares/express-static-options.js +0 -72
  54. package/tests/tests/middlewares/express-static.js +0 -40
  55. package/tests/tests/middlewares/method-override.js +0 -33
  56. package/tests/tests/middlewares/multer.js +0 -43
  57. package/tests/tests/middlewares/multiple-middlewares.js +0 -37
  58. package/tests/tests/middlewares/response-time.js +0 -29
  59. package/tests/tests/middlewares/serve-index.js +0 -38
  60. package/tests/tests/middlewares/serve-static.js +0 -38
  61. package/tests/tests/middlewares/vhost.js +0 -50
  62. package/tests/tests/params/array-param.js +0 -30
  63. package/tests/tests/params/nested-params.js +0 -24
  64. package/tests/tests/params/param-errors.js +0 -56
  65. package/tests/tests/params/param-function.js +0 -49
  66. package/tests/tests/params/param-next-route.js +0 -48
  67. package/tests/tests/params/param-optimized.js +0 -38
  68. package/tests/tests/params/param-use.js +0 -39
  69. package/tests/tests/params/param.js +0 -68
  70. package/tests/tests/params/params-regex.js +0 -26
  71. package/tests/tests/params/params-use.js +0 -20
  72. package/tests/tests/params/params.js +0 -35
  73. package/tests/tests/req/req-accepts-charsets.js +0 -40
  74. package/tests/tests/req/req-accepts-encodings.js +0 -36
  75. package/tests/tests/req/req-accepts-languages.js +0 -41
  76. package/tests/tests/req/req-accepts.js +0 -41
  77. package/tests/tests/req/req-app.js +0 -17
  78. package/tests/tests/req/req-baseurl.js +0 -38
  79. package/tests/tests/req/req-connection.js +0 -19
  80. package/tests/tests/req/req-fresh.js +0 -59
  81. package/tests/tests/req/req-get.js +0 -78
  82. package/tests/tests/req/req-headers-distinct.js +0 -72
  83. package/tests/tests/req/req-headers.js +0 -72
  84. package/tests/tests/req/req-host.js +0 -45
  85. package/tests/tests/req/req-hostname.js +0 -45
  86. package/tests/tests/req/req-ip.js +0 -19
  87. package/tests/tests/req/req-is.js +0 -44
  88. package/tests/tests/req/req-original-url.js +0 -29
  89. package/tests/tests/req/req-param.js +0 -29
  90. package/tests/tests/req/req-protocol.js +0 -20
  91. package/tests/tests/req/req-query.js +0 -23
  92. package/tests/tests/req/req-range.js +0 -48
  93. package/tests/tests/req/req-raw-headers.js +0 -72
  94. package/tests/tests/req/req-subdomains.js +0 -48
  95. package/tests/tests/req/req-url-nested.js +0 -27
  96. package/tests/tests/req/req-url-optimized-router.js +0 -26
  97. package/tests/tests/req/req-url-optimized.js +0 -23
  98. package/tests/tests/req/req-url.js +0 -36
  99. package/tests/tests/req/req-xhr.js +0 -23
  100. package/tests/tests/res/head-content-length.js +0 -18
  101. package/tests/tests/res/head.js +0 -47
  102. package/tests/tests/res/injecting.js +0 -25
  103. package/tests/tests/res/piping.js +0 -23
  104. package/tests/tests/res/res-app.js +0 -17
  105. package/tests/tests/res/res-append.js +0 -24
  106. package/tests/tests/res/res-attachment.js +0 -19
  107. package/tests/tests/res/res-clear-cookie.js +0 -18
  108. package/tests/tests/res/res-cookie.js +0 -22
  109. package/tests/tests/res/res-download.js +0 -36
  110. package/tests/tests/res/res-format.js +0 -57
  111. package/tests/tests/res/res-get.js +0 -18
  112. package/tests/tests/res/res-headers-sent.js +0 -18
  113. package/tests/tests/res/res-json.js +0 -17
  114. package/tests/tests/res/res-jsonp.js +0 -25
  115. package/tests/tests/res/res-links.js +0 -21
  116. package/tests/tests/res/res-location.js +0 -34
  117. package/tests/tests/res/res-redirect.js +0 -46
  118. package/tests/tests/res/res-remove-header.js +0 -19
  119. package/tests/tests/res/res-send-file.js +0 -17
  120. package/tests/tests/res/res-send-status.js +0 -17
  121. package/tests/tests/res/res-send.js +0 -69
  122. package/tests/tests/res/res-set.js +0 -28
  123. package/tests/tests/res/res-status.js +0 -18
  124. package/tests/tests/res/res-type.js +0 -19
  125. package/tests/tests/res/res-vary.js +0 -19
  126. package/tests/tests/res/res-write.js +0 -29
  127. package/tests/tests/routers/complex-routers.js +0 -34
  128. package/tests/tests/routers/empty-router.js +0 -25
  129. package/tests/tests/routers/lot-of-routes.js +0 -38
  130. package/tests/tests/routers/mergeparams.js +0 -42
  131. package/tests/tests/routers/nested-routers.js +0 -52
  132. package/tests/tests/routers/router-options.js +0 -68
  133. package/tests/tests/routers/routers.js +0 -45
  134. package/tests/tests/routers/simple-routers.js +0 -35
  135. package/tests/tests/routing/all.js +0 -47
  136. package/tests/tests/routing/array-arguments.js +0 -35
  137. package/tests/tests/routing/array-use.js +0 -33
  138. package/tests/tests/routing/async-use.js +0 -25
  139. package/tests/tests/routing/complex-routes.js +0 -50
  140. package/tests/tests/routing/lot-of-param-routes.js +0 -26
  141. package/tests/tests/routing/lot-of-routes.js +0 -59
  142. package/tests/tests/routing/next-existent-optimized-route.js +0 -29
  143. package/tests/tests/routing/next-existent-route.js +0 -29
  144. package/tests/tests/routing/next-nonexistent-optimized-route.js +0 -19
  145. package/tests/tests/routing/next-nonexistent-route.js +0 -19
  146. package/tests/tests/routing/next-special-cases.js +0 -54
  147. package/tests/tests/routing/next-unoptimized.js +0 -39
  148. package/tests/tests/routing/no-path-use.js +0 -29
  149. package/tests/tests/routing/non-string-routes.js +0 -27
  150. package/tests/tests/routing/req-multiple-mountpaths.js +0 -34
  151. package/tests/tests/routing/simple-routes.js +0 -29
  152. package/tests/tests/routing/simple-use.js +0 -52
  153. package/tests/tests/routing/some-middlewares.js +0 -27
  154. package/tests/tests/routing/special-characters.js +0 -28
  155. package/tests/tests/routing/star.js +0 -31
  156. package/tests/tests/routing/sub-apps.js +0 -32
  157. package/tests/tests/routing/trailing-slash.js +0 -37
  158. package/tests/tests/routing/weird-route-start.js +0 -18
  159. package/tests/tests/send-file/accept-ranges.js +0 -26
  160. package/tests/tests/send-file/callback.js +0 -23
  161. package/tests/tests/send-file/default-error-routing.js +0 -21
  162. package/tests/tests/send-file/dotfiles.js +0 -24
  163. package/tests/tests/send-file/etag.js +0 -19
  164. package/tests/tests/send-file/fs-threads.js +0 -39
  165. package/tests/tests/send-file/head.js +0 -49
  166. package/tests/tests/send-file/headers.js +0 -23
  167. package/tests/tests/send-file/if-match.js +0 -31
  168. package/tests/tests/send-file/if-range.js +0 -37
  169. package/tests/tests/send-file/if-unmodified-since.js +0 -32
  170. package/tests/tests/send-file/immutable.js +0 -22
  171. package/tests/tests/send-file/large-file.js +0 -19
  172. package/tests/tests/send-file/last-modified.js +0 -21
  173. package/tests/tests/send-file/max-age.js +0 -21
  174. package/tests/tests/send-file/path-traversal.js +0 -35
  175. package/tests/tests/send-file/range.js +0 -57
  176. package/tests/tests/send-file/simple.js +0 -18
  177. package/tests/tests/settings/case-sensitive-routing.js +0 -48
  178. package/tests/tests/settings/env-errors.js +0 -38
  179. package/tests/tests/settings/etag.js +0 -36
  180. package/tests/tests/settings/json-escape.js +0 -45
  181. package/tests/tests/settings/json-replacer.js +0 -50
  182. package/tests/tests/settings/json-spaces.js +0 -44
  183. package/tests/tests/settings/query-parser.js +0 -45
  184. package/tests/tests/settings/strict-routing.js +0 -64
  185. package/tests/tests/settings/subdomain-offset.js +0 -38
  186. package/tests/tests/settings/trust-proxy-host.js +0 -58
  187. package/tests/tests/settings/trust-proxy-ip.js +0 -58
  188. package/tests/tests/settings/trust-proxy-ips.js +0 -58
  189. package/tests/tests/settings/trust-proxy-protocol.js +0 -46
  190. package/tests/tests/settings/x-powered-by.js +0 -32
  191. package/tests/uws.js +0 -14
@@ -1,49 +0,0 @@
1
- // must support HEAD method
2
-
3
- const express = require("express");
4
- const path = require("path");
5
- const net = require("net");
6
-
7
- async function sendRequest(method, url, arrayHeaders) {
8
- // arrayHeaders is an array of [key, value] pairs
9
- return new Promise((resolve, reject) => {
10
- const client = new net.Socket();
11
- const [host, port] = url.split('://')[1].split('/')[0].split(':');
12
- const path = '/' + url.split('/').slice(3).join('/');
13
-
14
- client.connect(parseInt(port), host, () => {
15
- let request = `${method} ${path} HTTP/1.1\r\n`;
16
- request += `Host: ${host}:${port}\r\n`;
17
-
18
- for (const [key, value] of arrayHeaders) {
19
- request += `${key}: ${value}\r\n`;
20
- }
21
-
22
- request += '\r\n';
23
-
24
- client.on('data', (data) => {
25
- resolve(data.toString());
26
- });
27
-
28
- client.write(request);
29
-
30
- });
31
- });
32
- }
33
-
34
- const app = express();
35
-
36
- app.get('/test', (req, res) => {
37
- res.sendFile(path.join(process.cwd(), 'src/index.js'));
38
- });
39
-
40
- app.listen(13333, async () => {
41
- console.log('Server is running on port 13333');
42
-
43
- const response = await sendRequest('HEAD', 'http://localhost:13333/test', []);
44
- const body = response.split('\r\n\r\n')[1];
45
- const contentLength = response.match(/Content-Length: (\d+)/)[1];
46
- console.log([contentLength, body.length]);
47
-
48
- process.exit(0);
49
- });
@@ -1,23 +0,0 @@
1
- // must support headers option
2
-
3
- const express = require("express");
4
- const path = require("path");
5
-
6
- const app = express();
7
-
8
- app.get('/test', (req, res) => {
9
- res.sendFile('src/index.js', {
10
- root: '.',
11
- headers: {
12
- 'X-Custom-Header': 'custom-value'
13
- }
14
- });
15
- });
16
-
17
- app.listen(13333, async () => {
18
- console.log('Server is running on port 13333');
19
-
20
- const response = await fetch('http://localhost:13333/test');
21
- console.log(await response.text(), response.headers.get('X-Custom-Header'));
22
- process.exit(0);
23
- });
@@ -1,31 +0,0 @@
1
- // must support If-Match header
2
-
3
- const express = require("express");
4
-
5
- const app = express();
6
-
7
- app.get('/test', (req, res) => {
8
- res.sendFile('src/index.js', { root: '.' });
9
- });
10
-
11
- app.use((err, req, res, next) => {
12
- res.status(500).send(err.message);
13
- });
14
-
15
- app.listen(13333, async () => {
16
- console.log('Server is running on port 13333');
17
-
18
- const response = await fetch('http://localhost:13333/test', {
19
- headers: {
20
- 'If-Unmodified-Since': new Date(0).toUTCString()
21
- }
22
- });
23
- console.log(response.status, response.headers.get('ETag'));
24
- const response2 = await fetch('http://localhost:13333/test', {
25
- headers: {
26
- 'If-Match': '"' + response.headers.get('ETag') + '"'
27
- }
28
- });
29
- console.log((await response2.text()).slice(0, 50), response2.status);
30
- process.exit(0);
31
- });
@@ -1,37 +0,0 @@
1
- // must support If-Range header
2
-
3
- const express = require("express");
4
- const path = require("path");
5
-
6
- const app = express();
7
-
8
- app.get('/test', (req, res) => {
9
- res.sendFile('src/index.js', { root: '.' });
10
- });
11
-
12
- app.use((err, req, res, next) => {
13
- res.status(500).send(err.message);
14
- });
15
-
16
- app.listen(13333, async () => {
17
- console.log('Server is running on port 13333');
18
-
19
- const response = await fetch('http://localhost:13333/test', {
20
- headers: {
21
- 'Range': 'bytes=0-10',
22
- 'If-Range': new Date(0).toISOString()
23
- }
24
- });
25
- console.log(response.headers.get('Content-Range'), response.headers.get('Content-Length'), response.status);
26
-
27
- const response2 = await fetch('http://localhost:13333/test', {
28
-
29
- headers: {
30
- 'Range': 'bytes=0-10',
31
- 'If-Range': new Date().toISOString()
32
- }
33
- });
34
- console.log(response2.headers.get('Content-Range'), response2.headers.get('Content-Length'), response2.status);
35
-
36
- process.exit(0);
37
- });
@@ -1,32 +0,0 @@
1
- // must support If-Unmodified-Since header
2
-
3
- const express = require("express");
4
- const path = require("path");
5
-
6
- const app = express();
7
-
8
- app.get('/test', (req, res) => {
9
- res.sendFile('src/index.js', { root: '.' });
10
- });
11
-
12
- app.use((err, req, res, next) => {
13
- res.status(500).send(err.message);
14
- });
15
-
16
- app.listen(13333, async () => {
17
- console.log('Server is running on port 13333');
18
-
19
- const response = await fetch('http://localhost:13333/test', {
20
- headers: {
21
- 'If-Unmodified-Since': new Date(0).toUTCString()
22
- }
23
- });
24
- console.log(await response.text(), response.status);
25
- const response2 = await fetch('http://localhost:13333/test', {
26
- headers: {
27
- 'If-Unmodified-Since': new Date().toUTCString()
28
- }
29
- });
30
- console.log((await response2.text()).slice(0, 50), response2.status);
31
- process.exit(0);
32
- });
@@ -1,22 +0,0 @@
1
- // must support immutable option
2
-
3
- const express = require("express");
4
- const path = require("path");
5
-
6
- const app = express();
7
-
8
- app.get('/test', (req, res) => {
9
- res.sendFile('src/index.js', {
10
- root: '.',
11
- maxAge: '1d',
12
- immutable: true
13
- });
14
- });
15
-
16
- app.listen(13333, async () => {
17
- console.log('Server is running on port 13333');
18
-
19
- const response = await fetch('http://localhost:13333/test');
20
- console.log(await response.text(), response.headers.get('Cache-Control'));
21
- process.exit(0);
22
- });
@@ -1,19 +0,0 @@
1
- // must support larger files
2
-
3
- const express = require("express");
4
-
5
- const app = express();
6
-
7
- app.get('/test', (req, res) => {
8
- res.sendFile('tests/parts/big.jpg', {
9
- root: '.'
10
- });
11
- });
12
-
13
- app.listen(13333, async () => {
14
- console.log('Server is running on port 13333');
15
-
16
- const response = await fetch('http://localhost:13333/test');
17
- console.log(response.status, response.headers.get('Content-Length'));
18
- process.exit(0);
19
- });
@@ -1,21 +0,0 @@
1
- // must support lastModified option
2
-
3
- const express = require("express");
4
- const path = require("path");
5
-
6
- const app = express();
7
-
8
- app.get('/test', (req, res) => {
9
- res.sendFile('src/index.js', {
10
- root: '.',
11
- lastModified: true
12
- });
13
- });
14
-
15
- app.listen(13333, async () => {
16
- console.log('Server is running on port 13333');
17
-
18
- const response = await fetch('http://localhost:13333/test');
19
- console.log(await response.text(), response.headers.get('Last-Modified'));
20
- process.exit(0);
21
- });
@@ -1,21 +0,0 @@
1
- // must support maxAge option
2
-
3
- const express = require("express");
4
- const path = require("path");
5
-
6
- const app = express();
7
-
8
- app.get('/test', (req, res) => {
9
- res.sendFile('src/index.js', {
10
- root: '.',
11
- maxAge: '1d'
12
- });
13
- });
14
-
15
- app.listen(13333, async () => {
16
- console.log('Server is running on port 13333');
17
-
18
- const response = await fetch('http://localhost:13333/test');
19
- console.log(await response.text(), response.headers.get('Cache-Control'));
20
- process.exit(0);
21
- });
@@ -1,35 +0,0 @@
1
- // must prevent path traversal attacks
2
-
3
- const express = require("express");
4
- const path = require("path");
5
-
6
- const app = express();
7
-
8
- app.get('/test', (req, res) => {
9
- res.sendFile('src/../../index.js', { root: '.' });
10
- });
11
-
12
- app.get('/test2', (req, res) => {
13
- res.sendFile(process.cwd() + '/src/../src/index.js');
14
- });
15
-
16
- app.get('/test3', (req, res) => {
17
- res.sendFile(process.cwd() + '/src/index.js\0');
18
- });
19
-
20
-
21
- app.use((err, req, res, next) => {
22
- res.status(500).send(err.message);
23
- });
24
-
25
- app.listen(13333, async () => {
26
- console.log('Server is running on port 13333');
27
-
28
- const response = await fetch('http://localhost:13333/test');
29
- console.log(await response.text(), response.headers.get('Content-Type').split(';')[0]);
30
- const response2 = await fetch('http://localhost:13333/test2');
31
- console.log(await response2.text(), response2.headers.get('Content-Type').split(';')[0]);
32
- const response3 = await fetch('http://localhost:13333/test3');
33
- console.log(await response3.text(), response3.headers.get('Content-Type').split(';')[0]);
34
- process.exit(0);
35
- });
@@ -1,57 +0,0 @@
1
- // must support Range header
2
-
3
- const express = require("express");
4
- const path = require("path");
5
-
6
- const app = express();
7
-
8
- app.get('/test', (req, res) => {
9
- res.sendFile('src/index.js', { root: '.' });
10
- });
11
-
12
- app.use((err, req, res, next) => {
13
- res.status(500).send(err.message);
14
- });
15
-
16
- app.listen(13333, async () => {
17
- console.log('Server is running on port 13333');
18
-
19
- const response = await fetch('http://localhost:13333/test', {
20
- headers: {
21
- Range: 'bytes=0-10'
22
- }
23
- });
24
- console.log(await response.text(), response.headers.get('Content-Range'), response.headers.get('Content-Length'), response.status);
25
- const response2 = await fetch('http://localhost:13333/test', {
26
- headers: {
27
- Range: 'bytes=11-20'
28
- }
29
- });
30
- console.log(await response2.text(), response2.headers.get('Content-Range'), response2.headers.get('Content-Length'), response2.status);
31
- const response3 = await fetch('http://localhost:13333/test', {
32
- headers: {
33
- Range: 'bytes=0-10, 21-30'
34
- }
35
- });
36
- console.log((await response3.text()).slice(0, 10), response3.headers.get('Content-Range'), response3.headers.get('Content-Length'), response3.status);
37
- const response4 = await fetch('http://localhost:13333/test', {
38
- headers: {
39
- Range: 'bytes=500-10000'
40
- }
41
- });
42
- console.log((await response4.text()).slice(0, 10), response4.headers.get('Content-Range'), response4.headers.get('Content-Length'), response4.status);
43
- const response5 = await fetch('http://localhost:13333/test', {
44
- headers: {
45
- Range: 'bytes=-10'
46
- }
47
- });
48
- console.log((await response5.text()).slice(0, 10), response5.headers.get('Content-Range'), response5.headers.get('Content-Length'), response5.status);
49
-
50
- const response6 = await fetch('http://localhost:13333/test', {
51
- headers: {
52
- Range: 'bytes=99999999999999999999999999-999999999999999999999999999999'
53
- }
54
- });
55
- console.log((await response6.text()).slice(0, 10), response6.headers.get('Content-Range'), response6.headers.get('Content-Length'), response6.status);
56
- process.exit(0);
57
- });
@@ -1,18 +0,0 @@
1
- // must support res.sendFile()
2
-
3
- const express = require("express");
4
- const path = require("path");
5
-
6
- const app = express();
7
-
8
- app.get('/test', (req, res) => {
9
- res.sendFile(path.join(process.cwd(), 'src/index.js'));
10
- });
11
-
12
- app.listen(13333, async () => {
13
- console.log('Server is running on port 13333');
14
-
15
- const response = await fetch('http://localhost:13333/test');
16
- console.log(await response.text(), response.headers.get('Content-Type').split(';')[0]);
17
- process.exit(0);
18
- });
@@ -1,48 +0,0 @@
1
- // must support "case sensitive routing"
2
-
3
- const express = require("express");
4
-
5
- const app = express();
6
- const app2 = express();
7
- app.set('case sensitive routing', true);
8
- app2.set('case sensitive routing', false);
9
-
10
- app.get('/abc', (req, res) => {
11
- res.send('hi');
12
- });
13
-
14
- app.get('/Abc', (req, res) => {
15
- res.send('bye');
16
- });
17
-
18
- app2.get('/abc', (req, res) => {
19
- res.send('hi2');
20
- });
21
-
22
- app2.get('/Abc', (req, res) => {
23
- res.send('bye2');
24
- });
25
-
26
- app.listen(13333, async () => {
27
- console.log('Server is running on port 13333');
28
-
29
- let outputs = await Promise.all([
30
- fetch('http://localhost:13333/abc').then(res => res.text()),
31
- fetch('http://localhost:13333/Abc').then(res => res.text()),
32
- ]);
33
-
34
- console.log(outputs.join(' '));
35
-
36
- app2.listen(13334, async () => {
37
- console.log('Server is running on port 13334');
38
-
39
- let outputs2 = await Promise.all([
40
- fetch('http://localhost:13334/abc').then(res => res.text()),
41
- fetch('http://localhost:13334/Abc').then(res => res.text()),
42
- ]);
43
-
44
- console.log(outputs2.join(' '));
45
- process.exit(0);
46
- });
47
-
48
- });
@@ -1,38 +0,0 @@
1
- // must support "env" errors
2
-
3
- const express = require("express");
4
-
5
- const app = express();
6
- const app2 = express();
7
- app.set('env', 'production');
8
- app2.set('env', 'development');
9
-
10
- app.get('/abc', (req, res) => {
11
- throw new Error('Ignore this error, its used in a test');
12
- });
13
-
14
- app2.get('/abc', (req, res) => {
15
- throw new Error('Ignore this error, its used in a test');
16
- });
17
-
18
- app.listen(13333, async () => {
19
- console.log('Server is running on port 13333');
20
-
21
- let outputs = await Promise.all([
22
- fetch('http://localhost:13333/abc').then(res => res.text()),
23
- ]);
24
-
25
- console.log(outputs.join(' ').includes('Internal Server Error'));
26
-
27
- app2.listen(13334, async () => {
28
- console.log('Server is running on port 13334');
29
-
30
- let outputs2 = await Promise.all([
31
- fetch('http://localhost:13334/abc').then(res => res.text()),
32
- ]);
33
-
34
- console.log(outputs2.join(' ').includes('Ignore this error, its used in a test'));
35
- process.exit(0);
36
- });
37
-
38
- });
@@ -1,36 +0,0 @@
1
- // must support "etag"
2
-
3
- const express = require("express");
4
-
5
- const app = express();
6
- const app2 = express();
7
- const app3 = express();
8
- app.set('etag', false);
9
- app2.set('etag', true);
10
- app3.set('etag', 'strong');
11
-
12
- app.get('/abc', (req, res) => {
13
- res.send('abc');
14
- });
15
-
16
- app2.get('/abc', (req, res) => {
17
- res.send('abc');
18
- });
19
-
20
- app3.get('/abc', (req, res) => {
21
- res.send('abc');
22
- });
23
-
24
- app.listen(13333, async () => {
25
- app2.listen(13334, async () => {
26
- app3.listen(13335, async () => {
27
- const outputs = await Promise.all([
28
- fetch('http://localhost:13333/abc'),
29
- fetch('http://localhost:13334/abc'),
30
- fetch('http://localhost:13335/abc'),
31
- ]);
32
- console.log(outputs.map(res => res.headers.get('etag')));
33
- process.exit(0);
34
- });
35
- });
36
- });
@@ -1,45 +0,0 @@
1
- // must support "json escape"
2
-
3
- const express = require("express");
4
-
5
- const app = express();
6
- const app2 = express();
7
- app.set('json escape', false);
8
- app2.set('json escape', true);
9
- app.get('/abc', (req, res) => {
10
- res.json({ '&': '<script>' });
11
- });
12
- app.get('/def', (req, res) => {
13
- res.jsonp({ '&': '<script>' });
14
- });
15
-
16
- app2.get('/abc', (req, res) => {
17
- res.json({ '&': '<script>' });
18
- });
19
-
20
- app2.get('/def', (req, res) => {
21
- res.jsonp({ '&': '<script>' });
22
- });
23
-
24
- app.listen(13333, async () => {
25
- console.log('Server is running on port 13333');
26
-
27
- let outputs = await Promise.all([
28
- fetch('http://localhost:13333/abc').then(res => res.text()),
29
- fetch('http://localhost:13333/def').then(res => res.text()),
30
- ]);
31
-
32
- console.log(outputs.join(' '));
33
-
34
- app2.listen(13334, async () => {
35
- console.log('Server is running on port 13334');
36
-
37
- let outputs2 = await Promise.all([
38
- fetch('http://localhost:13334/abc').then(res => res.text()),
39
- ]);
40
-
41
- console.log(outputs2.join(' '));
42
- process.exit(0);
43
- });
44
-
45
- });
@@ -1,50 +0,0 @@
1
- // must support "json replacer"
2
-
3
- const express = require("express");
4
-
5
- const app = express();
6
- const app2 = express();
7
- app2.set('json replacer', (key, value) => {
8
- if(typeof value === 'object' && value !== null) {
9
- return 'REPLACED';
10
- }
11
- return value;
12
- });
13
- app.get('/abc', (req, res) => {
14
- res.json({ test: { test: 1 } });
15
- });
16
-
17
- app2.get('/def', (req, res) => {
18
- res.jsonp({ test: { test: 1 } });
19
- });
20
-
21
- app2.get('/abc', (req, res) => {
22
- res.json({ test: { test: 1 } });
23
- });
24
- app2.get('/def', (req, res) => {
25
- res.jsonp({ test: { test: 1 } });
26
- });
27
-
28
- app.listen(13333, async () => {
29
- console.log('Server is running on port 13333');
30
-
31
- let outputs = await Promise.all([
32
- fetch('http://localhost:13333/abc').then(res => res.text()),
33
- fetch('http://localhost:13333/def').then(res => res.text()),
34
- ]);
35
-
36
- console.log(outputs.join(' '));
37
-
38
- app2.listen(13334, async () => {
39
- console.log('Server is running on port 13334');
40
-
41
- let outputs2 = await Promise.all([
42
- fetch('http://localhost:13334/abc').then(res => res.text()),
43
- fetch('http://localhost:13334/def').then(res => res.text()),
44
- ]);
45
-
46
- console.log(outputs2.join(' '));
47
- process.exit(0);
48
- });
49
-
50
- });
@@ -1,44 +0,0 @@
1
- // must support "json spaces"
2
-
3
- const express = require("express");
4
-
5
- const app = express();
6
- const app2 = express();
7
- app2.set('json spaces', 2);
8
- app.get('/abc', (req, res) => {
9
- res.json({ test: { test: 1 } });
10
- });
11
-
12
- app.get('/def', (req, res) => {
13
- res.jsonp({ test: { test: 1 } });
14
- });
15
-
16
- app2.get('/abc', (req, res) => {
17
- res.json({ test: { test: 1 } });
18
- });
19
-
20
- app2.get('/def', (req, res) => {
21
- res.jsonp({ test: { test: 1 } });
22
- });
23
-
24
- app.listen(13333, async () => {
25
- console.log('Server is running on port 13333');
26
-
27
- let outputs = await Promise.all([
28
- fetch('http://localhost:13333/abc').then(res => res.text()),
29
- ]);
30
-
31
- console.log(outputs.join(' '));
32
-
33
- app2.listen(13334, async () => {
34
- console.log('Server is running on port 13334');
35
-
36
- let outputs2 = await Promise.all([
37
- fetch('http://localhost:13334/abc').then(res => res.text()),
38
- ]);
39
-
40
- console.log(outputs2.join(' '));
41
- process.exit(0);
42
- });
43
-
44
- });