소개
게시글
질문&답변
2020.05.25
세션이 만료되었을 때 로그인 페이지로 이동하려면
아직 세션 시간을 따로 설정하지는 않고 코드는 강의에서 작성한 내용을 따라 똑같이 작성한 상태입니다! 서버가 재시작되는것은 코드에 이상이 있어서인가요 아니면 ec2가 주기적으로 서버를 재시작하나요? 사이트를 이용하는 사용자들이 핸드폰에 이전에 켜둔 인터넷 브라우저에서 그대로 사용하는 경우가 있는데.. 로그인한지 하루 이상 시간이 지나 만료되어 그 때에 req.user.id를 가져오지 못하는것 같다고 생각되었습니다 ㅠㅠ 이런 경우도 있을까요...???? 아니면 서버문제일까요...??? req.user.id를 가져오지 못할 경우 바로 로그인 페이지로 돌려보내는 기능을 넣고싶은데 해당 기능은 구현이 어려울까요...?!
- 0
- 2
- 1.4K
질문&답변
2020.05.18
배포 후 문제 질문 드립니다 ㅠㅠ (pm2 kill 했는데도 사이트가 계속 동작하는 문제 & 타임존 문제)
앗 그렇군요 감사합니다 moment timezone 참고하여 진행하겠습니다!
- 0
- 3
- 673
질문&답변
2020.05.18
배포 후 문제 질문 드립니다 ㅠㅠ (pm2 kill 했는데도 사이트가 계속 동작하는 문제 & 타임존 문제)
위의 문제는 aws에서 인스턴스를 종료한 후 다시 시작해보니 제대로 동작하네요!!! 다른 질문 한가지만 더 드리겠습니다 ㅠㅠ 오늘 날짜의 투두리스트만 불러오는 기능이 있는데, 로컬 서버에서는 제대로 동작하는데 ec2로 배포한 환경에서는 미국과 한국의 시간차이때문인지 9시간 차이가 나 제대로 동작하지 않고 9시가 되어서야 하루가 바뀐 것으로 처리됩니다. moment.locale('ko')를 상단에 적어주었는데도 moment의 오늘 날짜 처리가 미국시간 기준으로 처리되네요 (해당 코드 back/routes/todos) moment.locale('ko'); router.get("/", async(req, res, next) => { // 나의 그날의 투두리스트 불러오기 try { console.log('back moment check:', moment()); let today = moment().format('YYYY-MM-DD'); const todos = await db.Todo.findAll({ where: { userId: req.user.id, createdAt: { [sequelize.Op.gte]:today+' 00:00:00', [sequelize.Op.lte]:today+' 23:59:59' } }, order: [['createdAt', 'ASC']] }); return res.json(todos); } catch (e) { console.error(e); return next(e); } }); 일단 위에 적힌 링크대로 ec2의 날짜 설정을 변경해주었는데, pm2 monit으로 백엔드 상태를 보니까 계속 9시간 전으로 기록되네요 ㅠㅠ (사진) 이런 상황일때는 moment()로 구한 현재 시간에 9시간을 더해주는 방법밖에 없을까요? 로컬 서버에선 제대로 동작이 되기 때문에 배포 전 테스트에서 불편할듯 하여 되도록 이런 방법으로는 하고싶지 않은데 다른 방법은 없는지 질문드립니다 ㅠㅠ
- 0
- 3
- 673
질문&답변
2020.05.15
함수형 컴포넌트의 클래스화
감사합니다!
- 0
- 6
- 328
질문&답변
2020.05.15
함수형 컴포넌트의 클래스화
답변 감사합니다! propTypes도 앞에 static 을 붙여 이런식으로 작성하면 되는걸까요? class DreamWitch extends App{ static propTypes = { Component: propTypes.elementType.isRequired, store: propTypes.object.isRequired, pageProps: propTypes.object.isRequired, }; static async getInitialProps (context){ const {ctx, Component} = context; let pageProps = {}; const state= ctx.store.getState(); const cookie = ctx.isServer ? ctx.req.headers.cookie : ''; if(ctx.isServer){ Axios.defaults.headers.cookie = ''; } if(ctx.isServer && cookie){ Axios.defaults.headers.cookie = cookie; } if(!state.user.me){ ctx.store.dispatch({ type:LOAD_USER_REQUEST }) } if(Component.getInitialProps){ pageProps = await Component.getInitialProps(ctx) || {}; } return {pageProps}; } render(){ const {Component, store, pageProps} = this.props; return( 렌더내용 ) } }
- 0
- 6
- 328