(Medium) - HTTP retry

Gist ~1 min read
View original
Crawl details
  • current

This article is too short to summarise.

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

// Using NodeJS v9.11.1
// "express": "4.16.3"
const express = require('express');
// "body-parser": "1.18.3",
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
let requestStarted = false;
app.post('/', (req, res) => {
console.log('REQUEST WITH ID: ' + req.body.uniqueRequestId);
// Default timeout is 120 seconds
// This will force the request to timeout earlier
// req.setTimeout(10000);
if (requestStarted) {
console.timeEnd('requestTime');
requestStarted = undefined;
}
if (!requestStarted) {
requestStarted = true;
console.time('requestTime');
}
});
app.get('/', (req, res) => {
res.send(`
<form action="/" method="POST">
<input type="text" name="uniqueRequestId" value="">
<input type="submit" value="Submit">
</form>
<script>
const randomNumber = (Math.random() * new Date().getTime()).toString();
const randomNumberAfterDot = randomNumber.substring(randomNumber.indexOf('.') + 1, randomNumber.length);
const simulatedRequestId = randomNumberAfterDot;
document.getElementsByName('uniqueRequestId')[0].value = simulatedRequestId;
</script>
`);
});
app.listen(7070);