수강이 제한됩니다.
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨React로 NodeBird SNS 만들기
시퀄라이즈 add 메소드 관련 질문
routes/post.js 파일 내부 models/post.js 파일 내부 models/post.js 파일에서 시퀄라이즈 association할 때 Post테이블과 Comment를 hasMany(1 대 다)로 연결하시면서 as를 딱히 사용하지 않고도 첫번째 스샷에서처럼 addComment 함수를 사용할수 있는 것으로 보입니다. 강의에서 설명하실 때는 as에 세팅했던 이름으로 add 메소드가 만들어져서 쓸 수 있다는 식으로 설명하셨어서요. as를 쓰지 않는다면 그냥 원래 table명(여기서는 Comment)를 바탕으로 addComment 이렇게 그냥 쓸 수 있는 건 가요?
- 미해결React로 NodeBird SNS 만들기
로그인은 되는데 새로고침하면 로그아웃되여
아직 로그인이 유지가 안되는게 맞나여 알려주시면 감사여 ~!
- 미해결React로 NodeBird SNS 만들기
질문이요
기존에 액션을 sagas/users.js 에 정의를 하셨다가, 그냥, 정의헌 액션 다 지우고 디스패치 안에 다 넣어 주셨잖아요. 나중에 프로그램이 커지면 기능면에서는 , 어느쪽이 더 선호가 되나요 ? 미리 액션을 지정해서 쓰는게 나은가요 ? 아니면 디스패치안에 그때그때마다 지정하는게 나은가요 ?
- 미해결React로 NodeBird SNS 만들기
로그인 요청시 에러가 발생해여
[nodemon] starting `node index.js`sever is runnig on http://localhost:3065Unhandled rejection SequelizeAccessDeniedError: Access denied for user 'root'@'localhost' (using password: YES) at Promise.tap.then.catch.err (C:\node_bird_11\back\node_modules\sequelize\lib\dialects\mysql\connection-manager.js:125:19) at tryCatcher (C:\node_bird_11\back\node_modules\bluebird\js\release\util.js:16:23) at Promise._settlePromiseFromHandler (C:\node_bird_11\back\node_modules\bluebird\js\release\promise.js:517:31) at Promise._settlePromise (C:\node_bird_11\back\node_modules\bluebird\js\release\promise.js:574:18) at Promise._settlePromise0 (C:\node_bird_11\back\node_modules\bluebird\js\release\promise.js:619:10) at Promise._settlePromises (C:\node_bird_11\back\node_modules\bluebird\js\release\promise.js:695:18) at _drainQueueStep (C:\node_bird_11\back\node_modules\bluebird\js\release\async.js:138:12) at _drainQueue (C:\node_bird_11\back\node_modules\bluebird\js\release\async.js:131:9) at Async._drainQueues (C:\node_bird_11\back\node_modules\bluebird\js\release\async.js:147:5) at Immediate.Async.drainQueues [as _onImmediate] (C:\node_bird_11\back\node_modules\bluebird\js\release\async.js:17:14) at runCallback (timers.js:705:18) at tryOnImmediate (timers.js:676:5) at processImmediate (timers.js:658:5) 서버쪽 에러인데 어떻게 고쳐야 될까여 ?? 한번 봐주시면 감사여 https://github.com/hyunsokstar/node_bird_11/tree/master/back
- 미해결React로 NodeBird SNS 만들기
시리얼 라이저 디시리얼 라이저가 실행되는 시점과 세션에 유저 정보를 저장하는 함수와 조회하는 함수를 알려주세여~!
const passportConfig = require('./passport')passportConfig();에 의해 passport 설정이 서버 로직에 추가된뒤 라우팅 로직내에서 req.login 이 실행되면 자동으로 serializeUser가 실행되어 서버 세션에 사용자 정보 저장 [id:2, cookie:"asdfasfs"] 되는게 맞나여?만약 그렇다면 passport.serializeUser((user, done)=> { return done(null, user.id); });에서 return done(null, user.id); 이 세션에 유저 데이터와 쿠키값을 저장하는 함수인가요?또 쿠키값으로 유저 정보를 검색해서 req.user에 유저정보를 세팅하는게 passport.deserializeUser가 맞나여 passport.deserializeUser(async(id, done)=> { try { const user = await db.User.findOne({ where: { id }, }) return done(null, user); } catch (e) { console.error(e); return done(e); } });함수 내용이 id로 유저 정보를 찾은뒤에 return done(null, user);을 실행하게 되어 있는데 done 함수가 둘다 다른건가여? 두번째 인자에 user는 user 정보를 어디론가 넘기는거 아닌가여? req.login이 실행되면 시리얼 라이저 디시리얼라이저가 둘다 실행되는건지 어떤 함수에 의해 유저 데이터가 저장되고 어떤 함수에 의해 쿠키로 유저 데이터를 검색해서 req.user에 유저 정보를 세팅하는건지알려주시면 감사여 강의를 다시 봐야될것 같긴 한데 어려워여 ㅠ; 그리고 passport /index.js에서 왜 local()을 실행하는지도 잘 몰겠어여
- 미해결React로 NodeBird SNS 만들기
passport strategy의 자체적으로 로직 만들어서 낸 에러 내용 프론트에서 받는 법 질문!
//back/routes/user.js 파일 passport.authenticate 메소드 내부 if (info) { return res.status(401).send(info.reason); } //back/passport/local.js 파일 내부 passport.use(new LocalStrategy({ //req.body 내부에서 넘어오는 아이디, 비밀번호에 해당하는 프로퍼티명을 할당해주어야 한다. usernameField: 'userId', passwordField: 'password', }, async (userId, password, done) => { try { const user = await db.User.findOne({ where: { userId } }); if (!user) { return done(null, false, { reason: '존재하지 않는 사용자입니다!' }); } const result = await bcrypt.compare(password, user.password); if (result) { return done(null, user); } return done(null, false, { reason: '비밀번호가 틀립니다.' }); } catch (e) { console.error(e); return done(e); } })); (현재 강의 섹션 5 거의 다 들어가는 상황입니다) 없는 아이디로 로그인하거나 비밀번호가 틀리면 위와 같이 오류가 나는데요. 'Request failed ~ ' 이러한 에러 메시지는 리덕스 액션활용해서 리덕스 state로 저장할 수가 있었는데, passport strategy에서 제로초님이 짜셨던 로그인 로직에서 done 메소드의 3번째 인자(reason 프로퍼티 가지는 객체)에 들어가는 데이터는 프론트에서 어떻게 받을 수 있는지 모르겠습니다. res.status(401).send로 보내도록 되어있는데 프론트단에서 어떻게 확인할 수 있는 건지 백엔드쪽 제대로 공부하는 것은 처음이라 알려주시면 감사하겠습니다. 실무에서 어떻게 하는지는 모르겠지만 프론트단에서 사용자에게 로그인이 잘못되었을 때 어떠한 메시지로든 알려주어야할텐데 그래서 여쭤봤습니다.
- 미해결React로 NodeBird SNS 만들기
왜 next-redux-wrapper를 사용해야하나요??
const middlewares = []; const enhancer = compose( applyMiddleware(...middlewares), typeof window !== "undefined" && window.__REDUX_DEVTOOLS_EXTENSION__ !== "undefined" ? window.__REDUX_DEVTOOLS_EXTENSION__() : f => f ); const store = createStore(rootReducer, initialState, enhancer); const App = ({ Component }) => { return () }) 이런식으로 작성해도 정상적으로 작동하던데 해당 라이브러리를 사용하는 이유가 궁금합니다! 그리고 해당 라이브러리가 하는일을 알고싶네요!
- React로 NodeBird SNS 만들기
vsc 이용중인데 js 파일 작성시 자동완성기능 질문
삭제된 글입니다
- 해결됨React로 NodeBird SNS 만들기
문제가 해결된거 같아여
node js 다시 설치하고 mysql2도 전역으로 다시 설치하니까 된거 같아여 C:\node_bird_11\back>npm i -g mysql2+ mysql2@1.7.0added 15 packages from 19 contributors in 1.189sC:\node_bird_11\back>C:\node_bird_11\back>C:\node_bird_11\back>sequelize db:createSequelize CLI [Node: 10.16.3, CLI: 5.5.1, ORM: 5.19.0]Loaded configuration file "config\config.json".Using environment "development".ERROR: Access denied for user 'root'@'localhost' (using password: YES)C:\node_bird_11\back>sequelize db:createSequelize CLI [Node: 10.16.3, CLI: 5.5.1, ORM: 5.19.0]Loaded configuration file "config\config.json".Using environment "development".Database react-nodebird created.
- React로 NodeBird SNS 만들기
환경 변수 설정을 해도 안되는것 같아여 node js를 다시 설치해야 될까여??
삭제된 글입니다
- 해결됨React로 NodeBird SNS 만들기
req.user.id 는 어디서 얻을 수 있을가여?
ㅇ해당 이미지에서 req.body는 클라이언트가 dispatch data 에 담아 보내는걸루 이해하였는데, req.user.id 는 어디서 오는지 모르겠습니다..
- 미해결React로 NodeBird SNS 만들기
reducers/user.js의 state에서 reducers/post.js state 접근은 못하나요?
reducers/user.js의 state에서 reducers/post.js state 접근은 못하나요?
- React로 NodeBird SNS 만들기
SequelizeConnectionRefusedError 가 발생했어여
삭제된 글입니다
- React로 NodeBird SNS 만들기
db 설정 하는중에 에러가 발생했는데요 이유를 잘몰겠어여
삭제된 글입니다
- 해결됨React로 NodeBird SNS 만들기
리덕스 사가 회원가입 에러 관련 질문
콘솔 창에서 "에러에러에러" 에러 메시지는 잘 확인 되는데, 정작 리덕스 state인 signUpErroReason에는 빈 객체만 들어갑니다. 어떻게 된 일인지 궁금합니다! function* signUp() { try { // yield call(signUpAPI); yield delay(2000); throw new Error("에러에러에러"); yield put({ // put은 dispatch 동일 type: SIGN_UP_SUCCESS }); } catch (e) { // loginAPI 실패 console.error(e); yield put({ type: SIGN_UP_FAILURE, error: e }); } }
- 미해결React로 NodeBird SNS 만들기
도메인과 섭도메인이 아니라 아예 다른도메인간 쿠키공유
cookie:{ domain:prod && '.domain이름' } 이런식으로 하셧는데 이때 domain주소가 nodebird.com이랑 api.nodebird.com이여서 가능한거같은데요. 저는 도메인을 아직구입하지않고 하는거라서 둘다 주소가 서로다른 아이피주소인데 이럴경우에 도메인주소앞에 쩜을 찍는걸로는 해결이 안되어보이는데 쿠키를 서로 공유할수있는 다른방법이있을까요?
- 미해결React로 NodeBird SNS 만들기
질문이요
props 보낼때요 const Home = () => { return ( <> <Head> <title>NodeBird</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/antd/3.16.2/antd.css" /> </Head> <AppLayout> <div>Hello, Next!</div> </AppLayout> </> ); }; 이런식으로 받으면 AppLayout 에서는 children 으로 props 값인 <div>Hello, Next!</div> 받잖아요. 그런데 props 명은 꼭children 이여야하나요? 다른 이름으로 하면 받을 수 없는거 같더라구요? 바꾸는 법도 따로 있나요?
- 해결됨React로 NodeBird SNS 만들기
제너레이터 관련 질문입니다!
제너레이터 함수를 따로 변수에 할당하지 않고 그냥 next를 계속 실행해보면 넘어가지 않고 첫번째 yield 까지만 계속 실행됩니다. 따로 변수에 할당시켜서 해보면 문제가 없던데, 왜 이런 현상이 벌어지는지 궁금해서 여쭤봅니다. 그리고 바쁘실텐데 항상 답변 빠르게 해주시는 것 같아 감사드려요 ㅎㅎ
- 미해결React로 NodeBird SNS 만들기
redux에서 state의 값이 바뀌었을때 화면단에서 바뀐값 바로 보이도록 하기.
redux에서 state의 값이 계속 바뀌는 값일때 어떻게 바뀐값만 계속 가져올수 있을까요 const {testValue} = useSelector(state => state.test) useEffect( () => { // state.test 에 testValue dispatch },[testValue]) 이렇게 하면 되려나 했는데, 안되더라구요 ㅠㅠ setInterval 같은거 안쓰고 바뀐값만 수정되면 좋겠는데 모르겠어요...
- 해결됨React로 NodeBird SNS 만들기
dispatch 관련질문
useEffect 안에서는 왜 return dispatch 를 할 수 없는건가요? 간혹 여러번 dispatch가 되기도 해서 곤혹스럽습니다 ㅠㅠ