Performance: Dependency injection in Express
This affects server response time and memory usage by controlling how dependencies are created and shared in Express apps.
const db = createDbConnection(); app.get('/users', (req, res) => { db.query('SELECT * FROM users', (err, results) => { res.send(results); }); });
app.get('/users', (req, res) => { const db = createDbConnection(); db.query('SELECT * FROM users', (err, results) => { res.send(results); db.close(); }); });
| Pattern | Resource Usage | Repeated Setup | Response Time Impact | Verdict |
|---|---|---|---|---|
| Creating dependencies inside each route handler | High CPU & memory | Yes, every request | Slower responses | [X] Bad |
| Injecting dependencies once and reusing | Low CPU & memory | No, single setup | Faster responses | [OK] Good |
function createService() {
return { getName: () => 'MyService' };
}
function createRouter(service) {
const router = require('express').Router();
router.get('/name', (req, res) => {
res.send(service.getName());
});
return router;
}
const service = createService();
const router = createRouter(service);
// What happens when a GET request is made to '/name'?function createRouter(service) {
const router = require('express').Router();
router.get('/data', (req, res) => {
res.send(service.getData());
});
return router;
}
const router = createRouter();
What is the main issue here?Pass the test and this pattern moves unknown