묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
안녕하세요. 제로초님. 질문이 있어 문의 드립니다.
안녕하세요 제로초님, 강의 잘 보고 있다가, 댓글 삭제 기능도 만들고 싶어 만들어 보았는데요... 삭제시 삭제는 되나 새로고침을 해야 사라지는 부분이 있더라구요, 삭제 버튼 클릭시 바로 사라지도록 하고 싶은데 어느 부분이 잘못 됬는지 감이 잡히질 않습니다ㅠㅠ 한번 확인 부탁드려요ㅠㅠ reducer api onClick 삭제 버튼 사가
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
제로초님 질문드립니다ㅜㅜ
const express = require('express'); const bcrypt = require('bcrypt'); const { User } = require('../models') // 구조분해 할당 const router = express.Router(); router.post('/', async (req,res,next)=> { try { const exUser = await User.findOne({ where : { email: req.body.email, } }); // 비동기 fidOne 찾는 함수 if (exUser) { return res.status(403).send('이미 사용중인 아이디입니다.'); } const hashedPassword = await bcrypt.hash(req.body.password, 12) await User.create({ email: req.body.email, password: hashedPassword, nickname: req.body.nickname, }) res.status(200).send('success'); } catch (error) { console.error(error); next(error); } }) module.exports = router; 이미 있는 이메일로 가입 했을경우, status 403과 send로 에러 메세지를 보냈습니다. 이미 있는 이메일로 가입 했을 경우에 SIGN_UP_REQUEST 만 실행되고 SIGN_UP_FAILUTE 실행되지 않아 alert창이 뜨질 않습니다 ㅠㅠ 뭐가 문제 일까요..
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
AppLayout.js 에서
AppLayout.prototype = { children: Protypes.node.isRequired } 꼭 사용해야 next 에서 children 를 사용할수 있는건가요? react에서는 prototype을 사용하지 않고 children를 사용한것으로 기억해서요
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
redux-saga 의 흐름.
질문1. 리덕스사가에 액션이 전달되는 과정 dispatch({ type: LOG_IN_REQUEST, data: { email, password }, }); 위와 같이 로그인 버튼을 눌렀을때 인자로 전달된 액션을 dispatch 하게 되는데. function* watchLogIn() { yield takeLatest(LOG_IN_REQUEST, logIn); } 이후 사가에서 LOG_IN REQUEST 에관한 액션이 왔을떄 login 함수가 실행된다는 흐름은 이해를 했습니다. 하지만 액션객체의 type 속성인 LOG_IN_REQUEST 가 어떻게 위에 takeLatest 의 첫번째 인자로 인식이되어 login 함수가 실행되는지 직관적으로 이해가 가지않습니다. 이미 사가 라이브러이에서 정해진 규칙같은 건가요 ? 액션을 디스패치 할때 {type: `액션타입`} 형태여야만 takeLatest('액션타입') 이 인식이되는지 궁금합니다. 질문2. yield function* logIn(action) { try { console.log('saga logIn'); // const result = yield call(logInAPI); yield delay(1000); => 멈춤? yield put({ => 멈춤? type: LOG_IN_SUCCESS, data: action.data, }); } catch (err) { console.error(err); yield put({ type: LOG_IN_FAILURE, error: err.response.data, }); } } yield 는 중단점 역활을 한다고 이해했습니다. 그럼 위에 takeLatest 의 두번째인자로 위 login 함수가 실행될때 첫번째 yield delay(1000) 이 실행되고 멈추는게아니라 계속에서 아래 yelid put 쪽을 실행되는부분이 이해가 잘 가지않습니다.! 영상 몇번 돌려보고 찾아도 봤는데 스스로 해결하지 못해 질문 드립니다 ㅜㅠ..
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
axios.defaults.baseURL 지정 후, 다른 서버에 요청을 보내려면?
/front/sagas/index.js 에서 axios.defaults.baseURL = 'http://localhost:3065'; axios.defaults.withCredentials = true; 이렇게 공통으로 지정을 해주는데, 만약에 예외적으로 다른 URL을 사용하고 싶으면 어떻게 하나요? function loadPostsAPI(data) { return axios.get('http://naver.com/test', data); } 이런식으로 개별적으로 URL 넣어주면 될까요? 아니면 애초에 공통URL을 지정해주지 말고 각자 넣어줘야 하는걸까요? 공통URL과 더불어 withCredentials 값도 각자 넣으려면 어떻게 해야하는지 궁금합니다!
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
models 최신 문법으로 변경 후
index 페이지에 /Posts 요청에서 sequelizeeagerloadingerror Image is not associated to Comment 에러가 나고 로그인도 안되요 models 폴더 말고 다른 파일도 수정해야하는 곳이 있나요?
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
Router 를 사용해 SSR 페이지 이동할 때 질문입니다!
/user/[id].js 로 Link 태그를 통해 접근했을 때 userInfo 가 null 인 에러를 해결하려고 이것저것 해보던중 /user/[id].js 안에 {/* <title>{userInfo.nickname}님의 글</title> <meta name="description" content={`${userInfo.nickname}님의 게시글`} /> <meta property="og:title" content={`${userInfo.nickname}님의 게시글`} /> <meta property="og:description" content={`${userInfo.nickname}님의 게시글`} /> <meta property="og:image" content="https://nodebird.com/favicon.ico" /> <meta property="og:url" content={`https://nodebird.com/user/${id}`} /> */} Head 안에 위 부분을 주석처리하니까 정상적으로 렌더링 되었어요! 혹시 원인이 뭔지 알 수 있을까요? 스크립트가 실행되기 전 Head 안에 userInfo 를 찾다가 에러를 나는 것인지.. 다른 이유에서인지.. 그리고 제로초님 깃헙 클론받아서 실행할 때 next 디펜던시 버전을 9.5.3으로 변경해서 실행해보니 저와 동일한 에러가 났었어요 혹시 확인 가능하실까요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
vscode 에서 vim 으로 .env 파일을 만드는데 안되요...
vscode에서 git bash 로 사용 했는데 다 작성하고 esc 누르고 wq 누르고 엔터 눌러도 반응이 없습니다..
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
이미지 업로드 -> 취소 -> 업로드 관련 질문
이미지 업로드와 관련해서 궁금한게 있습니다. 업로드 버튼을 눌러 이미지를 하나만 선택한 뒤 제거 버튼을 눌러 제거하면, 다시 같은 이미지를 선택했을 때 업로드가 안됩니다. 에러가 발생하는 게 아니라 아예 UPLOAD_IMAGES_REQUEST 액션이 디스패치되지 않아요. 제 나름대로 코드를 살펴봤지만 액션이 디스패치되지 않는 이유를 알 수가 없습니다. 원인이 뭔지 알려주시면 감사하겠습니다.