Skip to content

Commit 2ad1b9b

Browse files
committed
[javascript] Create new Fortune object in scope of request
The new fortune object must be constructed in the scope of the request, not as a constant: > Within the scope of the request, a new Fortune object must be constructed and added to the list. https://github.com/TechEmpower/FrameworkBenchmarks/wiki/Project-Information-Framework-Tests-Overview#fortunes
1 parent e52b3e4 commit 2ad1b9b

6 files changed

Lines changed: 23 additions & 14 deletions

File tree

frameworks/JavaScript/express/src/server.mjs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ const cache = new LRUCache({
2020
max: maxRows
2121
});
2222

23-
const extra = { id: 0, message: "Additional fortune added at request time." };
23+
const extra = () => ({
24+
id: 0,
25+
message: "Additional fortune added at request time."
26+
});
2427

2528
const app = express();
2629

@@ -65,7 +68,7 @@ if (db) {
6568

6669
app.get("/fortunes", async (req, res) => {
6770
const rows = await db.fortunes();
68-
rows.push(extra);
71+
rows.push(extra());
6972
rows.sort((a, b) => (a.message < b.message) ? -1 : 1);
7073
const n = rows.length;
7174
let html = "",
@@ -126,4 +129,4 @@ const port = parseInt(process.env.PORT || "8080");
126129
const server =app.listen(port, host, () => {
127130
console.log(`Server running at http://${host}:${port}/`);
128131
});
129-
server.keepAliveTimeout = 0;
132+
server.keepAliveTimeout = 0;

frameworks/JavaScript/fastify/handlers.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ module.exports = (databaseLayer) => ({
2727
fortunes: async (req, reply) => {
2828
const fortunes = await databaseLayer.allFortunes();
2929

30-
fortunes.push(h.additionalFortune);
30+
fortunes.push(h.additionalFortune());
3131
fortunes.sort(compare);
3232

3333
return reply.view("/views/fortunes.hbs", { fortunes });

frameworks/JavaScript/fastify/helper.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ module.exports = {
55
return Math.min(Math.max(parseInt(queries) || 1, 1), 500);
66
},
77

8-
additionalFortune: {
8+
additionalFortune: () => ({
99
id: 0,
1010
message: "Additional fortune added at request time.",
11-
},
11+
}),
1212
};

frameworks/JavaScript/hono/src/server.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@ app
2626
});
2727

2828
if (db) {
29-
const extra = { id: 0, message: "Additional fortune added at request time." };
29+
const extra = () => ({
30+
id: 0,
31+
message: "Additional fortune added at request time."
32+
});
3033

3134
app
3235
.get("/db", async (c) => {
@@ -49,7 +52,7 @@ if (db) {
4952
return c.json(worldObjects);
5053
})
5154
.get("/fortunes", async (c) => {
52-
const rows = [extra, ...(await db.fortunes())];
55+
const rows = [extra(), ...(await db.fortunes())];
5356

5457
sortByMessage(rows);
5558

frameworks/JavaScript/spliffy/www/fortunes.rt.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
const db = require('../db')
22
const { escape } = require('html-escaper')
33

4-
const runTimeFortune = {
4+
const runTimeFortune = () => ({
55
id: 0,
66
message: 'Additional fortune added at request time.'
7-
}
7+
})
88

99
function sortByMessage(arr) {
1010
const n = arr.length
@@ -23,9 +23,9 @@ function sortByMessage(arr) {
2323
module.exports = {
2424
GET: async ({ res }) => {
2525
let fortunes = await db.allFortunes()
26-
fortunes.push(runTimeFortune)
26+
fortunes.push(runTimeFortune())
2727
sortByMessage(fortunes)
28-
28+
2929
let html = '<!DOCTYPE html><html><head><title>Fortunes</title></head><body><table><tr><th>id</th><th>message</th></tr>';
3030
for (let i = 0; i < fortunes.length; i++) {
3131
html += `<tr><td>${fortunes[i].id}</td><td>${escape(fortunes[i].message)}</td></tr>`;

frameworks/JavaScript/uwebsockets.js/src/server.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,15 +93,18 @@ if (db) {
9393
}
9494
});
9595

96-
const extra = { id: 0, message: "Additional fortune added at request time." };
96+
const extra = () => ({
97+
id: 0,
98+
message: "Additional fortune added at request time."
99+
});
97100

98101
webserver.get("/fortunes", async (response) => {
99102
response.onAborted(() => {
100103
response.aborted = true;
101104
});
102105

103106
try {
104-
const rows = [extra, ...await db.fortunes()];
107+
const rows = [extra(), ...await db.fortunes()];
105108

106109
if (response.aborted) {
107110
return;

0 commit comments

Comments
 (0)