작성
·
281
0
안녕하세요 제로초님 강의 잘 듣고 있습니다!
다름이 아니라 이 강좌를 듣고 플젝에서 Middleware을 좀 변환해서 사용해보고 있는데요.
컨트롤러에서 @Param()으로 넘기는 값을 Middleware을 거칠때, req.params[''] 만 안되던데 혹시 이유가 있나요? 그리고 이 문제를 사용하셨던 request.get()으로 해결이 가능한가요?
예를 들어 @Query()로 넘기면 쿼리스트링 값을 req.query[]로 하면 가져와지고 @Headers()로 넘겨도 req.headers로 가져와지는데 params()만 안돼서 질문드립니다!
답변 3
0
@Get('/:projectName/app-users')
async getAllUsers(@Param('projectName') projectName: string) {
console.log(projectName);
return this.usersService.getAppUsersFromIp(projectName);
}
export function Middleware(
req: Request,
_res: Response,
next: NextFunction,
): void {
console.log('req', req);
const projectName = req.params['projectName'];
// const header = req.headers[DATABASE_TENANT_HEADER] as string;
// console.log('header_tenant=', header);
console.log('tenantName=', projectName);
// req.projectname = header?.toString() || null;
req.projectname = projectName?.toString() || null;
next();
}
이렇게 사용하고 있습니다! tenantName= undefind로 뜨더라고요..?
0
쿼리 부분은 localhost:3060/abc?d=ef
이런 식으로 있을 때 요청이 들어온 순간부터 명확하게 먼저 d라는 쿼리가 있음을 알 수 있습니다만 abc가 어떤 라우터에 걸리는지는 컨트롤러 단까지 봐야하기 때문입니다.