inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

질문 드려요

해결됨

따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)

findone vs findoneorfail 무슨차이 인가요?

  • toporm
  • typescript
  • nodejs
  • postgresql
  • react
  • docker
  • 클론코딩
  • Next.js
리나스 댓글 1 좋아요 0 조회수 298

디비 api 사이트 회원가입 문제

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

디비 api 사이트 회원가입이 안됩니다

  • react
  • typescript
  • redux
  • tdd
  • Next.js
강민성 댓글 2 좋아요 0 조회수 356

프론트앤드 .env 파일

미해결

[리뉴얼] React로 NodeBird SNS 만들기

그 어디에선가 프론트앤드에서 .env 파일이 build 시 노출된다는 얘기를 들었던 것 같은데 사실인가용 프론트앤드에서 .env 파일을 사용하면 더 효율적으로 처리 할 수 있는 작업이 생겼는데 백앤드로 처리해도 되지만 보안상 괜찮은지 궁금해서 여쭤봅니다

  • Next.js
  • redux
  • nodejs
  • react
  • express
123413 댓글 1 좋아요 0 조회수 491

상위 커뮤니티 imageUrl

미해결

따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)

사진을 등록하고 메인 페이지에서 위와 같이 이미지가 제대로 나오지 않습니다. server.ts 에서 express.static("public") 코드 추가한상태입니다. 해당 커뮤니티 페이지 내에서 사진 업로드는 잘 됩니다. 메인 페이지에서 이미지가 안보이는건 어떻게 해결해야 할까요?

  • Next.js
  • 클론코딩
  • typescript
  • nodejs
  • react
  • postgresql
  • docker
SOOMIN 댓글 2 좋아요 0 조회수 320

params : { append_to_response : "videos"},

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

강의 잘 보고 많이 배우고 있습니다 ! "append_to_response"는 사용자가 다르게 바꿀 수 있는 부분인가요 ? 아니면 axios 속성인가요 ?

  • axios
  • Next.js
  • typescript
  • redux
  • react
  • tdd
댓글 1 좋아요 0 조회수 359

11:58 질문입니다. ㅠㅠ

해결됨

따라하며 배우는 리액트 A-Z[19버전 반영]

안녕하세요 선생님... 아래 부분 이해를 못했는데 다시 한 번 설명 가능하신가요? ㅠㅠ const { data: movieDetail } = await axios.get(`movie/${movieId}`, { params: { append_to_response: "videos" }

  • react
  • tdd
  • redux
  • typescript
  • Next.js
miniapp 댓글 1 좋아요 0 조회수 417

모듈 시스템 차이 질문있습니다!

미해결

[리뉴얼] React로 NodeBird SNS 만들기

next.config.js 와 같은 설정파일에서는 commonjs 모듈을 사용하고 src폴더내의 소스파일들은 es6 모듈시스템을 사용하는게, src는 웹팩이 번들링하기 때문에 es6를 사용하는것이고, 그외 파일들은 node 완경이라서 그런건가요?? + 그리구 express를 사용할때, package.json에서 module타입을 es6로 변경해서 사용하시지 않는 이유가 있을까요? express 사용할때도 es6 모듈시스템이 편해서 항상 바꿔서 사용하는게 좋지 않을까 생각했는데, 여러 소스코드를 참고해봐도 굳이 es6모듈로 바꾸지 않고 commonjs모듈을 그대로 사용하는거 같더라구요! 혹시 어떤 단점이 있어서인지 궁금합니다

  • redux
  • react
  • nodejs
  • express
  • Next.js
댓글 1 좋아요 0 조회수 270

매우 기초적인 질문이지만 ㅜㅠㅜㅠㅜ

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

str?.length > n ? str.substr(0, n - 1) + "..." : str; 이부분을 (str.length > n) ? str.substr(0, n - 1) + "..." : str; 썼더니 에러가 납니다.. (Cannot read properties of undefined (reading 'length')) str? -->> 삼항연산자의 시작이라는 건 알겠는데 .. .length의 의미는 뭔가요

  • redux
  • react
  • typescript
  • tdd
  • Next.js
댓글 1 좋아요 1 조회수 267

mousedown과 touchstart에 대한 질문입니다

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

안녕하세요 좋은 강의 잘 듣고있습니다. 감사합니다. useOnClickOutside 함수에서 document.addEventListener("mousedown", listener); document.addEventListener("touchstart", listener); 를 이용해서 모달 창 외부를 클릭했는지 감지하는 것으로 이해했습니다. 그래서 저는 mousedown과 touchstart 대신에 document.addEventListener("click", listener) 을 써도 되지 않을까 싶어서 해봤는데 이렇게 하니까 모달창이 아예 나타나지 않더라구요. 'touchstart' 이벤트 리스너는 없어도 동일하게 동작하는 것 같은데 'click' 'mousedown' 이벤트는 어떤 차이가 있는 것인지 궁금합니다. 감사합니다.

  • typescript
  • redux
  • tdd
  • react
  • Next.js
댓글 2 좋아요 0 조회수 840

[id].tsx 에서 params 빨간줄 부분 괜찮나요?

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

여기서 41번째줄 params 빨간줄 지나가도 괜찮나요 실행은 잘되는데 이유가 궁금합니다 undefine이라고 하는데... 잘모르겠네요

  • Next.js
  • tdd
  • react
  • redux
  • typescript
오일중 댓글 1 좋아요 0 조회수 459

banner가 여러 번 실행됩니다

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

https://github.com/kkyu0718/react-study/tree/main/react-netflix-clone 코드는 위에 있습니다. 일단은 app.js 가 한번 렌더링되면서 banner도 한번 렌더링 되어야하는데 이렇게 8번이 실행됩니다. 1번 때문에 실행이 안되고 있는 걸수도 있는데 useEffect() 에서의 fetchData가 실행이 되고 있지않아 Uncaught TypeError: Cannot read properties of undefined (reading 'results') 가 발생하는거 같습니다. 코드를 다시 아무리봐도 문제는 없어보이는데 혹시 어떻게 해결해야될까요?

  • tdd
  • typescript
  • react
  • redux
  • Next.js
댓글 1 좋아요 0 조회수 321

안녕하세요 선생님~~

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

useEffect(() => { first return () => { second } }, [third]) useEffect를 사용할때 first는 처음 렌더링이 된후에 실행 second는 앱이 종료될때 실행되고 third는 어떠한 state가 변경될때 useEffect를 다시 실행할것인가? 로 이해를 했습니다 여기서 질문이 있는데 nav.js에서는 처음 렌더링후 우리가 스크롤을 하였을때 추가적인 렌더링이 필요하기에 useEffect로 이벤트를 만들었다 라고 이해를 하였는데 Banner.js에서는 백그라운드이미지 경로에 movie.backdrop_path를 넣는데 렌더링 되기전에 useEffect가 먼저 실행이 된것인가요? 먼저 실행이 안되면 movie안에는 아무것도 없지 않나요? 실력이 없어 질문이 일목요연하지 못한점 죄송합니다 추가로 console.log()로 찍어보니 렌더가 되고 useEffect()가 실행이 되어서 setmovie로 스테이트를 set해주고 그래서 스테이트가 바뀌니 다시 렌더가 되고 근데 문제는 처음에 렌더가 될때 movie가 비었기 때문에 에러가 떠야하는데 순서가 위와 같이 나옵니다 렌더 에러 이펙트 렌더가 맞지 않나요?

  • react
  • typescript
  • redux
  • tdd
  • Next.js
성민석 댓글 3 좋아요 2 조회수 507

오타 제보!

해결됨

만들면서 배우는 프론트엔드 DO IT 코딩 (Next.js, Typescript)

안녕하세요! 강의 잘 듣고 있습니다 :) 노트 영역에 contaxt -> context 로 변경이 필요해보입니다!

  • 버그
  • Next.js
부드러운 펭귄 댓글 2 좋아요 0 조회수 408

왜 User모델에 Posts가 들어올까요..?

미해결

[리뉴얼] React로 NodeBird SNS 만들기

User모델에 Post모델을 넣어서 로그인 오류를 해결한건 이해했습니다. 근데 왜 User모델에 들어간 이름이 Posts인가요..? 아무곳에서도 Posts라고 안쓰지않았나요?

  • react
  • redux
  • nodejs
  • express
  • Next.js
댓글 1 좋아요 0 조회수 240

리액트의 기초 동작중 props로 값전달이 궁금합니다

미해결

[리뉴얼] React로 NodeBird SNS 만들기

부모컴포넌트에서 리덕스를 사용하지않고 props로 값을 전달할때에 자식 컴포넌트에서 props.state를 사용하여 앞에 프롭스를 항상붙여 써도 동작하는경우가있고 프롭스 없이 state를 바로사용할수있는경우가 있는데 어떤 차이가있고 어떤걸 사용해야하는지 궁금합니다 만약 프롭스를 붙이지않고 정상적으로 동작하여도 props. 형태를 매번 사용하는것이 좋을까요? 아래는 예시 상황입니다 // 부모에게서 randomstate 를 전달받아 바로 사용하는 자식컴포넌트 const Child1 = ( randomstate ) => { console.log(randomstate); return 자식 컴포넌트 ; }; ... // props를 매번 이용하여 사용하는 컴포넌트 const Child2 = ( props, randomstate ) => { console.log(props.randomstate); return 자식 컴포넌트 ; }; ...

  • redux
  • express
  • react
  • nodejs
  • Next.js
댓글 1 좋아요 0 조회수 196

로그인할때 쿠키가 안들어갑니다.

미해결

[리뉴얼] React로 NodeBird SNS 만들기

배포했는데 회원가입도 되고, 로그인도 되는데, 쿠키가 안넘어갑니다. 개발모드일때는 쿠키가 넘어갔는데, 어디서 문제인지 모르겠습니다. 아이디 부분만 닉네임으로 바꿨습니다.

  • nodejs
  • react
  • redux
  • express
  • Next.js
star4381 댓글 2 좋아요 0 조회수 413

TypeError: Cannot read properties of undefined (reading 'findOne') 질문

미해결

[리뉴얼] React로 NodeBird SNS 만들기

안녕하세요 제로초님! 현재 백엔드 파트 게시물 좋아요 기능을 구현하다가 갑자기 회원가입과 로그인 기능에서 오류가 떠서 질문드립니다. 회원가입을 하게 되면, TypeError: Cannot read properties of undefined (reading 'findOne') 라는 오류가 발생하면서 데이터베이스에 데이터가 전송되지 않고 있습니다. 제가 생각하기에는 User모델에 문제가 발생하여 데이터가 들어가지 않아 findOne이 에러가 뜨는 것 같은데,,, 문제가 된다고 생각하는 코드 올리겠습니다. models/index.js const Sequelize = require("sequelize"); const env = process.env.NODE_ENV || "development"; const config = require("../config/config")[env]; const db = {}; const sequelize = new Sequelize( config.database, config.username, config.password, config, ); db.Comment = require("./comment")(sequelize, Sequelize); db.Hashtag = require("./hashtag")(sequelize, Sequelize); db.Post = require("./post")(sequelize, Sequelize); db.User = require("./user")(sequelize, Sequelize); db.Image = require("./image")(sequelize, Sequelize); Object.keys(db).forEach((modelName) => { if (db[modelName].associate) { db[modelName].associate(db); } }); // 반복문을 이용하여 각 데이터베이스의 관계를 설정해줌. db.sequelize = sequelize; db.Sequelize = Sequelize; module.exports = db; models/user.js const DataTypes = require("sequelize"); const { Model } = DataTypes; module.exports = (sequelize, DataTypes) => { const User = sequelize.define( "User", // id가 기본적으로 들어가있기 때문에 만들지 않아도 됨. { email: { type: DataTypes.STRING(30), allowNull: false, //필수 unique: true, //고유한 값 }, nickname: { type: DataTypes.STRING(30), allowNull: false, //필수}, }, password: { type: DataTypes.STRING(100), allowNull: false, //필수}, }, }, { charset: "utf8", collate: "utf8_general_ci", // 한글 저장 }, ); User.associate = (db) => { db.User.hasMany(db.Post); db.User.hasMany(db.Comment); db.User.belongsToMany(db.Post, { through: "Like", as: "Liked" }); db.User.belongsToMany(db.User, { through: "Follow", as: "Followers", foreignKey: "FollowingId", }); db.User.belongsToMany(db.User, { through: "Follow", as: "Followings", foreignKey: "FollowerId", }); }; return User; }; routes/user.js const express = require("express"); const bcrypt = require("bcrypt"); const passport = require("passport"); const { User, Post } = require("../models"); const { isLoggedIn, isNotLoggedIn } = require("./middlewares"); const router = express.Router(); router.get("/", async (req, res, next) => { // GET /user try { if (req.user) { const fullUserWithoutPassword = await User.findOne({ where: { id: req.user.id }, attributes: { exclude: ["password"], }, include: [ { model: Post, attributes: ["id"], }, { model: User, as: "Followings", attributes: ["id"], }, { model: User, as: "Followers", attributes: ["id"], }, ], }); res.status(200).json(fullUserWithoutPassword); } else { res.status(200).json(null); } } catch (error) { console.error(error); next(error); } }); router.post("/login", isNotLoggedIn, (req, res, next) => { passport.authenticate("local", (err, user, info) => { if (err) { console.error(err); return next(err); } if (info) { return res.status(401).send(info.reason); } return req.login(user, async (loginErr) => { if (loginErr) { console.error(loginErr); return next(loginErr); } const fullUserWithoutPassword = await User.findOne({ where: { id: user.id }, attributes: { exclude: ["password"], }, include: [ { model: Post, attributes: ["id"], }, { model: User, as: "Followings", attributes: ["id"], }, { model: User, as: "Followers", attributes: ["id"], }, ], }); return res.status(200).json(fullUserWithoutPassword); }); })(req, res, next); }); router.post("/", isNotLoggedIn, async (req, res, next) => { // async await을 이용하여 비동기 문제 해결 try { const exUser = await User.findOne({ where: { email: req.body.email, }, }); // 같은 이메일을 사용하고 있는 사람이 있는지 if (exUser) { return res.status(403).send("이미 사용중인 아이디입니다."); } // return이 없으면 아래있는 res도 실행이 됨. const hashedPassword = await bcrypt.hash(req.body.password, 13); await User.create({ email: req.body.email, nickname: req.body.nickname, password: hashedPassword, }); res.send("ok"); } catch (error) { console.error(error); next(error); } }); //post /user/ router.post("/user/logout", isLoggedIn, (req, res, next) => { req.logout(); req.session.destroy(); res.send("ok"); }); module.exports = router; 오류 사진

  • react
  • redux
  • express
  • nodejs
  • Next.js
댓글 2 좋아요 0 조회수 2019

eslint의 extends쪽 질문이 있습니다.

미해결

[리뉴얼] React로 NodeBird SNS 만들기

안녕하세요 현영님. 에러는 해결을 한 상태인데 궁금한 점이 생겨 질문드립니다. const fs = require ( ' fs ' ); 백쪽에 fs모듈을 쓰면서 부터 시작됐는데, 강의 마지막 부분에 와서 프론트 서버를 새로고침하니 저런 에러가 발생했습니다. 스택오버플로우를 찾아보니, https://github.com/vercel/next.js/issues/7755 프론트쪽에 next.config.js라는 폴더를 생성한 후 module . exports = { webpack : ( config , { isServer } ) => { // Fixes npm packages that depend on `fs` module if ( ! isServer ) { config . node = { fs : 'empty' } } return config } } 이런식으로 넣어주라는데, 프론트 서버에서는 fs모듈에 관련된 작업을 한 게 없어 여러가지 테스트를 하다가, 프론트 폴더의 .eslintrc파일에 extends를 airbnb가 아닌 주석처리된 부분으로 바꾸니 또 해결이 되었습니다. (다른 프론트나 백쪽의 코드는 수정이 없었습니다) 1. 혹시 extends랑 상관이 있는건지? 아니면 그냥 일시적인 에러라고 생각을 하면 될까요? 2. 관련이 없다고 하면 혹시나 알 수 없는 에러가 나올 경우 현영님의 경우 어떻게 대처를 하시나요? (에러가 생길 때마다 기록을 해두는 편인데 생각보다 찾기가 힘든? 에러들이 종종 나오더라고요.. 짬의 차인지..?) ++ 어제 업데이트 하신 정보들 확인했습니다. 바로바로 업데이트 해주셔서 불편함이 없네요 감사합니다

  • nodejs
  • express
  • redux
  • react
  • Next.js
손서연 댓글 2 좋아요 0 조회수 301

react-redux 버전 관련 질문입니다.

미해결

[리뉴얼] React로 NodeBird SNS 만들기

리덕스로 로그인을 구현한 후 로그인 되지않는 문제가 생겼었습니다. dispatch 함수가 실행되지만 rootReducer에서 LOG_IN 부분이 실행이 안됐습니다(console.log로 확인) 그래서 useDispatch를 불러온 부분이 문제라고 생각해, react-redux버전을 강의에 맞게 7로 바꾸니 문제가 해결됐습니다. 왜 이런 문제가 발생한건가요..? 추가로 이 강의를 다 들은 후, react-redux를 8버전으로 올리고 싶으면 어디서 변경내역을 확인해야 하나요..?

  • Next.js
  • express
  • redux
  • react
  • nodejs
댓글 1 좋아요 0 조회수 338

인기 태그

인프런 TOP Writers

주간 인기글