negyedik gyakorlat megoldás javítva

This commit is contained in:
magdo
2026-03-06 23:26:33 +01:00
parent 388aa908de
commit 8da3a1eb32
4 changed files with 38 additions and 8 deletions
@@ -22,8 +22,9 @@
"license": "ISC",
"dependencies": {
"@prisma/client": "^5.9.1",
"bcrypt": "^5.1.1",
"bcryptjs": "^2.4.3",
"cookie-parser": "^1.4.6",
"cors": "^2.8.5",
"dotenv": "^16.4.1",
"express": "^4.18.2",
"handlebars": "^4.7.8",
@@ -93,7 +93,7 @@ container.registerTransient('UserController', (c) =>
);
// ===== Middleware =====
app.use(corsMiddleware()); // CORS with whitelist
app.use(corsMiddleware); // CORS with whitelist
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(cookieParser());
@@ -27,11 +27,41 @@ class Container {
// Ha singleton, azonnal példányosítjuk
if (lifetime === 'singleton') {
const instance = factory();
const instance = factory(this);
this.services.set(name, instance);
}
}
/**
* Singleton service regisztráció (kényelmi függvény)
*
* @param {string} name - Service neve
* @param {Function} factory - Factory függvény ami az instance-t létrehozza
*/
registerSingleton(name, factory) {
this.register(name, factory, 'singleton');
}
/**
* Transient service regisztráció (kényelmi függvény)
*
* @param {string} name - Service neve
* @param {Function} factory - Factory függvény ami az instance-t létrehozza
*/
registerTransient(name, factory) {
this.register(name, factory, 'transient');
}
/**
* Scoped service regisztráció (kényelmi függvény)
*
* @param {string} name - Service neve
* @param {Function} factory - Factory függvény ami az instance-t létrehozza
*/
registerScoped(name, factory) {
this.register(name, factory, 'scoped');
}
/**
* Service feloldás
*
@@ -52,7 +82,7 @@ class Container {
if (scope.has(name)) {
return scope.get(name);
}
const instance = this.factories.get(name)();
const instance = this.factories.get(name)(this);
scope.set(name, instance);
return instance;
}
@@ -64,7 +94,7 @@ class Container {
// TRANSIENT: Mindig új instance
if (lifetime === 'transient') {
return this.factories.get(name)();
return this.factories.get(name)(this);
}
// Default: singleton behavior
@@ -123,4 +153,4 @@ class Container {
}
}
export default Container;
export { Container };
@@ -154,5 +154,4 @@ class EmailService {
}
}
}
export default EmailService;
export { EmailService };