Performance: Session-based authentication
This affects page load speed and interaction responsiveness by managing server-side session storage and cookie handling.
app.use(session({ secret: 'secret', resave: false, saveUninitialized: false }));
// resave: false avoids saving unchanged sessions
// saveUninitialized: false avoids saving empty sessionsapp.use(session({ secret: 'secret', resave: true, saveUninitialized: true }));
// resave: true forces session save on every request
// saveUninitialized: true saves empty sessions| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Session saved on every request (resave: true) | N/A | N/A | N/A | [X] Bad |
| Session saved only when changed (resave: false) | N/A | N/A | N/A | [OK] Good |
/profile?
import { Controller, Get, Req } from '@nestjs/common';
@Controller()
export class AppController {
@Get('profile')
getProfile(@Req() req) {
if (req.session.user) {
return `Hello, ${req.session.user.name}`;
} else {
return 'Not logged in';
}
}
}import { Module } from '@nestjs/common';
import { SessionModule } from '@nestjs/session';
@Module({
imports: [
SessionModule.forRoot({
secret: 'mySecret',
resave: false,
saveUninitialized: true,
}),
],
})
export class AppModule {}import { Controller, Get, Req, Res } from '@nestjs/common';
import { Response, Request } from 'express';
@Controller()
export class AppController {
@Get('dashboard')
dashboard(@Req() req: Request, @Res() res: Response) {
// What should go here?
}
}Pass the test and this pattern moves unknown