라벨이 id인 게시물 표시

error TS2339: Property 'id' does not exist on type 'User'.

이미지
  express.js, passport.js, typescript 를 사용해서 로그인 기능을 구현했다. passport local 로그인 동작 순서는 아래와 같다. passport-local -> passport.authenticate -> local strategy -> req.login -> passport.serializeUser -> response 각 순서에서 작업을 수행하고 각 단계에서 callback 함수와 함께 다음 함수에서 필요한 값을 넘겨주게 된다.  error TS2339: Property 'id' does not exist on type 'User'. 해당 에러는 아래 코드에서 발생되었다. passport . serializeUser (( user , done ) => { done ( null , user . id ); }); 아래 코드처럼 req.login으로 user 정보를 넘겨passport.serializeUser에서 해당 유저 정보를 받는데 return req . login ( user , async ( err ) => { if ( err ) { console . error ( err ); return next ( err ); } if ( typeof user === 'object' && user !== null ) { if ( user ) { return res . status ( 200 ). json ({ success : true , message : 'login success' , user : { email : user . email , nickname : u

[CSS] CSS 선택자(selector) 와 선택자 우선순위

선택자(selector) 태그 즉 element(요소)에 css스타일을 적용할때 각각의 요소들마다 세분화하여 스타일을 지정할 수 있고 선택자를 잘 활용할 경우 재활용성과 중복의 제거가 일어나서 유지보수에 효과적이다. id 선택자 : id 선택자는 태그에 id=""로 속성을 줄 수 있으며 id선택자는 해당 html에서 단 한번만 선언될 수 있다. (여러번 사용이 가능하나 선택자 이름이 중복되서는 안된다.) id속성이 적용된 태그에 스타일을 적용하고자한다면 css파일에서 #으로 선언하여 해당 속성이 적용된 태그에 스타일을 적용할 수 있다. 사용방법 : #first {...} class 선택자 : class 선택자는 태그에 class=""로 속성을 지정해 줄 수 있으며 id 선택자와 다르게 많은 태그들에 사용할 수 있고 id 선택자보다 조금 더 포괄적인 부분 또는 많은 태그들에 동시다발적으로 스타일을 지정해 줄 때 사용한다.  class속성을 사용한 태그에 스타일을 적용하고 싶으면 css파일에서 .(점)과 함께 속성명을 적고 스타일을 작성한다. 사용방법 : .second {...} 일반 선택자 : class 선택자 보다 더 포괄적인 태그들에 동시다발적으로 스타일을 지정해 줄 때 사용된다.  사용법은 다른 태그들과 다르게 태그명만 작성하고 중괄호 안에 스타일 속성을 작성하면 된다. 사용방법 : div {...} 전체 선택자 : 모든 태그를 가르키며 화면 전체의 모든 태그에 스타일을 적용할 수 있다. 사용방법 : * {...} 자식 선택자   : 자식 선택자는 깊이가 1인 자식 요소에만 스타일을 적용한다. < div > < p > 1 </ p > < p > 2 </ p > < span >< p > 3 </ p ></ span > </ div > 자식 선택자  사용방법 : div > p {...} &g