묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
서버를 종료하면 회원가입한 user정보가 삭제되는것이 맞나요?
서버를 종료하면 회원가입한 user정보가 삭제되는것이 맞나요?워크벤치에서도 확인해보니 회원가입 후 서버를 종료하면 데이터가 user데이터가 사라진것을 확인했습니다..
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
인자에 객체 값을 넣는 이유
인자에 객체 값을 넣는 이유가 안전하기 때문이라고 하셨는데 정확히 어떤 부분이 안전한지 알려주실 수 있나요?
-
미해결Node.js 노드 빠르게 훑어보기: 서버부터 DB까지
상세 페이지에 내용이 보이지 않음 문의 - 확인 공유
강의 감사드립니다~!! /write 로 들어가서 글작성한 뒤 상세 페이지는 제대로 나오는데요. / main에서 보이는 리스트에서 글제목을 선택해서 들어가면 상세페이지가 나오지 않습니다.아래와 같은 에러 메시지가 나오는데요혹시 원인이 무엇일까요?ReferenceError: Cannot access 'detail' before initializationat file:///C:/Users/Notebook/Desktop/Node_Study/my_app/index.js:114:40at process.processTicksAndRejections (node:internal/process/task_queues:95:5)at async file:///C:/Users/Notebook/Desktop/Node_Study/my_app/index.js:113:20현재 작성된 부분은 다음과 같습니다.혹시 어디가 문제일까요? app.get('/detail/:id', async(req, res) => { console.log('get /detail called id:'+req.params.id ); const id = req.params.id; let no_error = false const detail = await Writing.findOne({_id: id}).then((result)=>{ res.render('detail', {'detail':detail}) }).catch((err)=>{ console.error(err) }) })113라인을 보이기 위해 화면 캡처 본도 올립니다. 감사합니다~~! ---------------다른 분 도움받아 아래와 같이 공유드립니다. let no_error = false let detail = null await Writing.findOne({_id: id}).then((result)=>{ detail = result no_error = true res.render('detail', {'detail':detail}) }).catch((err)=>{ console.error(err) }) 짧은 시간 안에 Node JS 실습과 몽고 DB 사용을 가능하게 하고 간단한 게시판도 작성할 수 있는 강의를 제공해주셔서 감사드립니다~~!! ^^
-
미해결Node.js 노드 빠르게 훑어보기: 서버부터 DB까지
에러 발생 문의드립니다. - > 확인 공유
강의 감사드립니다~~~ main.html 에서 에러가 발생하는데요에러메시지는 다음과 같습니다.Template render error: (C:\Users\Notebook\Desktop\Node_Study\my_app\views\main.html) [Line 15, Column 36]unexpected token: }}at Object._prettifyError (C:\Users\Notebook\Desktop\Node_Study\my_app\node_modules\nunjucks\src\lib.js:32:11)at Template.render (C:\Users\Notebook\Desktop\Node_Study\my_app\node_modules\nunjucks\src\environment.js:442:21)at C:\Users\Notebook\Desktop\Node_Study\my_app\node_modules\nunjucks\src\environment.js:301:27at createTemplate (C:\Users\Notebook\Desktop\Node_Study\my_app\node_modules\nunjucks\src\environment.js:254:9)at handle (C:\Users\Notebook\Desktop\Node_Study\my_app\node_modules\nunjucks\src\environment.js:265:11)at C:\Users\Notebook\Desktop\Node_Study\my_app\node_modules\nunjucks\src\environment.js:276:9at next (C:\Users\Notebook\Desktop\Node_Study\my_app\node_modules\nunjucks\src\lib.js:258:7)at Object.asyncIter (C:\Users\Notebook\Desktop\Node_Study\my_app\node_modules\nunjucks\src\lib.js:263:3)at Environment.getTemplate (C:\Users\Notebook\Desktop\Node_Study\my_app\node_modules\nunjucks\src\environment.js:259:9) at Environment.render (C:\Users\Notebook\Desktop\Node_Study\my_app\node_modules\nunjucks\src\environment.js:295:10) 수업중 제가 놓친 부분이 없다면main.html에서 마지막 작성 부분은 다음과 같은데요,이것이 맞는지요? 이후로 main.html이 언급되는 부분이 강의에 없어서요~ 확인요청드립니다~강의 감사드립니다~~~ ======================마지막 강의에서 main.html이 보이고 거기에서 수정가능합니다. {% for writing in list %} <tr> <td><a href="/detail/{{writing.id}}" class="btn">{{writing.title}}</a></td>
-
미해결MERN STACK 커뮤니티 : 시작부터 배포까지 알려주는 React
스타일 깃허브에서 코드 가져가라고 하셨는데요
강의에서는 깃허브 참고하라 하시고 깃허브 링크를 안 올려놓으셔서개인적으로 이메일도 보냈으나 묵묵부답이십니다코드 좀 보고싶은데 제발 회신 좀 해주세요~~~~!~!~!~
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
오버라이딩 질문
class 공중부품 { run = () => { console.log("날라서 도망가자"); }; } class 지상부품 { run = () => { console.log("뛰어서 도망가자"); }; } class Monster { power = 10; 부품; constructor(부품, power) { this.부품 = 부품; this.power = power; } attack = () => { console.log("공격하자!"); console.log("내 공격력은 " + this.power + "야!"); }; run = () => { console.log("도망가자!"); }; }run 메소드를 this.부품.run();으로 바꿔주지 않아도 뛰어서 or 날아서 도망가자고 바뀌던데요..상속관계면 오버라이딩으로 생각하고 알아서 바뀌는 것은 이해했는데이렇게 객체를 집어넣었을 때도 자동을 바꿔주는건 왜 그런건가요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
Immer 적용시 에러 문의드립니다.
안녕하세요. React Immer 적용시 나타나는 에러인데확인한번 부탁드려도 될까요?Immer 적용 전까지 코드는 잘 돌아갔는데, 에러 추적이 힘드네요. 웹 팩 환경설정 문제일까요? immer module은 잘 설치되어 있습니다. 에러내용소스코드front/reducers/user.jsimport produce from 'immer'; export const initialState = { logInLoading : false, // 로그인 시도중 logInDone : false, loginError : null, logOutLoading : false, // 로그아웃 시도중 logOutDone : false, logOutError : null, signUpLoading : false, // 회원가입 시도중 signUpDone : false, signUpFailure : null, changeNicknameLoading : false, // 닉네임 변경 시도중 changeNicknameDone : false, changeNicknameFailure : null, me : null, signUpData : {}, loginData : {}, }; const dummyUser = (data) => ({ ...data, nickname : '제로초', id : 1, Posts : [{ id : 1}], Followings : [{nickname : 'AAA'}, {nickname : 'BBB'}, {nickname : 'CCC'}], Followers : [{nickname : 'AAA'}, {nickname : 'BBB'}, {nickname : 'CCC'}], }); export const LOG_IN_REQUEST = 'LOG_IN_REQUEST'; // 액션의 이름 export const LOG_IN_SUCCESS = 'LOG_IN_SUCCESS'; export const LOG_IN_FAILURE = 'LOG_IN_FAILURE'; export const LOG_OUT_REQUEST = 'LOG_OUT_REQUEST'; // 액션의 이름 export const LOG_OUT_SUCCESS = 'LOG_OUT_SUCCESS'; export const LOG_OUT_FAILURE = 'LOG_OUT_FAILURE'; export const SIGN_UP_REQUEST = 'SIGN_UP_REQUEST'; export const SIGN_UP_SUCCESS = 'SIGN_UP_SUCCESS'; export const SIGN_UP_FAILURE = 'SIGN_UP_FAILURE'; export const CHANGE_NICKNAME_REQUEST = 'CHANGE_NICKNAME_REQUEST'; export const CHANGE_NICKNAME_SUCCESS = 'CHANGE_NICKNAME_SUCCESS'; export const CHANGE_NICKNAME_FAILURE = 'CHANGE_NICKNAME_FAILURE'; export const FOLLOW_REQUEST = 'FOLLOW_REQUEST'; export const FOLLOW_SUCCESS = 'FOLLOW_SUCCESS'; export const FOLLOW_FAILURE = 'FOLLOW_FAILURE'; export const UNFOLLOW_REQUEST = 'UNFOLLOW_REQUEST'; export const UNFOLLOW_SUCCESS = 'UNFOLLOW_SUCCESS'; export const UNFOLLOW_FAILURE = 'UNFOLLOW_FAILURE'; export const ADD_POST_TO_ME = 'ADD_POST_TO_ME'; export const REMOVE_POST_OF_ME = 'REMOVE_POST_OF_ME'; export const signUpAction = (data) => { return { type: SIGN_UP_REQUEST, data, }; }; export const changeNicknameAction = (data) => { return { type: CHANGE_NICKNAME_REQUEST, data, }; }; export const loginRequestAction = (data) => { return { type: LOG_IN_REQUEST, data, } }; export const logoutRequestAction = { type: LOG_OUT_REQUEST, }; const reducer = (state = initialState, action) => produce(state, (draft) => { switch (action.type) { // 로그인 case LOG_IN_REQUEST: draft.state = true; draft.loginError = null; draft.logInDone = false; break; case LOG_IN_SUCCESS: draft.logInLoading = false; draft.logInDone = true; draft.me = dummyUser(action.data); break; case LOG_IN_FAILURE: draft.logInLoading = false; draft.loginError = action.error; break; // 로그아웃 case LOG_OUT_REQUEST : draft.logOutLoading = true; draft.logOutError = null; break; case LOG_OUT_SUCCESS : draft.logOutLoading = false; draft.logOutDone = false; draft.me = null; break; case LOG_OUT_FAILURE : draft.logOutLoading = false; draft.logOutError = action.error; break; // 회원가입 case SIGN_UP_REQUEST : draft.signUpLoading = true; draft.signUpDone = false; draft.signUpError = null; break; case SIGN_UP_SUCCESS : draft.signUpLoading = false; draft.signUpDone = true; break; case SIGN_UP_FAILURE : draft.signUpLoading = false; draft.signUpData = action.error; break; // 닉네임 변경 case CHANGE_NICKNAME_REQUEST : draft.changeNicknameLoading= true; draft.changeNicknameDone= false; draft.changeNicknameError= null; break; case CHANGE_NICKNAME_SUCCESS : draft.changeNicknameLoading = false; draft.changeNicknameDone = true; break; case CHANGE_NICKNAME_FAILURE : draft.changeNicknameLoading = false; draft.changeNicknameData = action.error; break; // 게시글 등록시 사용자 dummy Data에 동기화 case ADD_POST_TO_ME : draft.me.Posts.unshift({ id : action.data}) break; // return { // ...state, // me : { // ...state.me // Posts: [ { id.action.data}, ...state.me.Posts] // } // } // 게시글 삭제 case REMOVE_POST_OF_ME : draft.me.Posts = draft.me.Posts.filter((v) => v.id !== action.data) break; // return { // ...state, // me : { // ...state.me, // Posts : state.me.Posts.filter((v) => v.id !== action.data) // } // } default: break; } }); export default reducer;
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
docker-compose build시 에러발생
"setenv: invalid argument" 라는 에러가 발생합니다만 어떤 부분을 고치면 에러를 고칠 수 있는 지 알려주시면 감사하겠습니다.yaml파일version: "3.7" # 컴퓨터들 services: # 컴퓨터이름 my-backend: build: context: . dockerfile: Dockerfile ports: - 4000:4000 # 컴퓨터이름 my-database: build: context: . dockerfile: Dockerfile.mongo ports: - 27017:27017 터미널hyunminyu@HYUNMINnoAir backend % ls Dockerfile docker-compose.yaml node_modules util.js Dockerfile.mongo email.js package.json yarn.lock Phone.js index.js swagger hyunminyu@HYUNMINnoAir backend % docker-compose build setenv: invalid argument
-
미해결리액트로 나만의 블로그 만들기(MERN Stack)
npm i react-redex redux-saga react-router-dom connected-react-router bootstrap reactstrap dotenv 명령어 설치하면 에러날까요?
이렇게 나왔습니다 무엇이 문제일까요?
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
무료와 프리미엄으로 미들웨어를 확장시 model 질문
무료와 프리미엄으로 미들웨어를 확장시킬 때 user모델에는 domain.type이 없기 때문에 undefined가 나오고 있습니다. 이때 table을 수정해야하는지 domain을 불러와서 코드를 짜야하는지 고민이되서 질문드려봅니다!현재까지 코드 수정사항입니다!const limiter = rateLimit({ widowMs: 60 * 1000, max: (req, res) => { console.log("req.user.type:", req.user.type); if (req.user?.type === "premium") { return 10; } return 2; }, handler(req, res) { res.status(this.statusCode).json({ code: this.statusCode, message: `1분에 ${ req.user?.type === "premium" ? "10" : "2" } 회만 요청 할 수 있습니다`, }); console.log(req.user.type); }, }); exports.apiLimiter = async (req, res, next) => { let user; console.log("user1:", user); console.log("res.locals.decoded:", res.locals.decoded); if (res.locals.decoded) { user = await User.findOne({ where: { id: res.locals.decoded.id } }); console.log("user3:", user); } req.user = user; console.log("user2:", user); limiter(req, res, next); };
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
app.module.ts 하는도중에
화면처럼 AppModule에 붉은 줄이 떠서 확인을 해보니'AppModule' 클래스가 'NestModule' 인터페이스를 잘못 구현합니다. 'configure' 속성이 'AppModule' 형식에 없지만 'NestModule' 형식에서 필수입니다.ts(2420)nest-module.interface.d.ts(6, 5): 여기서는 'configure'이(가) 선언됩니다.라고 뜨는데 어떤식의 해결을 해야할 지 모르겠습니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
몽고db compost 데이터베이스
몽고db compose 에서 데이터베이스가 나타나지 않습니다.....localhost로도 했고 아이피로도 바꿔서 해봤는데도 안되고근데 포스트맨에서는 동작이 잘 되는데 왜그런건가요.....
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
퀴즈06
backend/index.js안녕하세요. 퀴즈06을 푸는 도중에 제가 짠 코드가 맞는지 궁금해서 여쭤봅니다 ㅜㅜ.. 우선 signup.js에서 벡앤드 서버로 axios를 통해서 데이터를 보내고 거기서 폰번호가 맞는지 확인하고 토큰을 coolsms 서비스를 통해서 발송하는 코드를 짰습니다. 그 이후에 인증번호와 토큰을 매칭시키고 맞다면 success를 리턴하게 했구 이메일도 비슷한 과정으로 짰습니다. 너무 어렵게 느껴져서 GPT 도움을 통해 코드를 짰는데 이게 맞는지 의심이 되네요 휴.. 혹시 퀴즈에 대한 정답예시이런건 없나요? 아무래도 독학으로 온라인 부트캠프 과정을 밟다보니 포트폴리오는 혼자 해결하는데 좀 어려운 거 같습니다 맞는지도 잘 모르겠고..긴 글이지만 성의있게 봐주시면 정말 감사하겠습니다!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
에러나서 시간을 많이 잡아먹어요
window용이라서 에러가 나면 검색하느라 시간을 많이 잡아먹어요.기본 1시간 이상 걸리는거 같아요이걸 감내해야되는 건가요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
안녕하세요 환경 관련 질문드립니다
현재 컴퓨터에 업무로 인한 파일들이 많아 용량으로 인해서 파티션을 나누는 용량을 포함해서 아무리 해도 용량 확보가 어려운 상황에.. 본체에 추가적으로 SSD를 추가할 수 없는 상황인데 혹시 현 상황에서 우분투를 외장 SSD에 설치한 뒤에 학습을 진행하여도 문제가 없을까요 ? 혹은 vm웨어를 통한 가상환경에서도 학습에 문제가 없을지 궁금합니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
Record 타입 질문
interface IProfile { name: string; age: number; school: string; hobby?: string; } type eee = "철수" | "영희" | "훈이"; type fff= Record<eee, IProfile>;fff가 key가 철수,영희,훈이고 value가 IProfile 인것은 이해하는데, 이게 철수,영희,훈이가 뭔 타입을 말하는 건지 모르겠고,이게 뭔 의미인지도 잘 모르겠어요
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
강의를 다 듣고 어떻게 공부해야 할지 궁금합니다.
Q1. nest.js 같은 라이브러리들을 자유자재로 써야 하나요?Q2. docs를 따로 보면서 사이드 프로젝트를 만들며 공부해야 하나요? 아니면 또 다른 강의를 구매해서 공부해야하나요? 기초적인 지식은 어느정도 감이 잡힌 것 같은데, 세부적인 설정 부분이나 고급 기능들은 어떻게 접근할지 잘 모르겠습니다. 강사님은 어떻게 공부하시나요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
CORS 에러
결제 API를 테스트 하던 중 CORS에러를 발견하여 나름대로 수정을 해보려고 했으나.... 헤매고 있어서 질문 드립니다. 우선 에러 메시지가 아래처럼 나왔습니다.(현재 쓰고 있는 에디터가 webstorm이라 혹시나 해서 vscode로 실행했는데요 결국 동일한 에러가 발생했습니다.)결국 preflight에서 CORS에러가 난건데요.이를 찾아보니... 프론트/백엔드 모두에서 설정해야 해서 다음과 같이 했습니다. Front ---------------------------------------------테스트 해보려고 변수를 하드코딩 했습니다.axios.defaults.withCredentials = true; axios.post( 'http://localhost:3000/graphql', // 쿼리 작성 { query: ` mutation { createPointTransaction(impUid: "imp_12345678", amount: 100) { id impUid amount status } } ` }, // headers { headers: { "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhNmQ3NjU5Yy05NzA2LTQ4MDgtOTA0OC02ZjI4YWY4NmNhN2UiLCJpYXQiOjE2OTQwNzI1MjQsImV4cCI6MTY5NDA3NjEyNH0.Uch2B5ewPc6yVsy4LuyOJzAUXEhnypbTxKmtQt6hRBw", } } ) Backend -------------------------------------------------main.tsimport { NestFactory } from '@nestjs/core' import { AppModule } from './app.module' import { ValidationPipe } from '@nestjs/common' import { HttpExceptionFilter } from './commons/filter/http-exception.filter' async function bootstrap() { const app = await NestFactory.create(AppModule) // cors설정 추가 app.enableCors() app.useGlobalPipes(new ValidationPipe()) app.useGlobalFilters(new HttpExceptionFilter()) await app.listen(3000) } bootstrap() 제가 찾은 방법은 여기까지 인데요.다른 방법을 찾지 못해 질문 드립니다.;;;;
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
utilty 타입 undefined
interface IProfile { name: string; age: number; school: string; hobby?: string; } type aaa = Partial<IProfile>;aaa에다가 마우스 올려 놓으면type aaa = { name?: string | undefined; age?: number | undefined; school?: string | undefined; hobby?: string | undefined;} 이렇게 뜨는데 저 undefined가 왜 뜬건지 모르겠어요.분명 선생님께서는 안 뜨는데
-
미해결MERN STACK 커뮤니티 : 시작부터 배포까지 알려주는 React
read(2) 강의 내용에 질문이 있습니다.
posts, counter 가 생기면서 어떤 차이가 생긴건지 잘 이해가 되지 않습니다.작성된 대상들은 counter num을 가지고 이제 post num을 사용할 수 있다는데 잘 이해가 되지 않습니다...counter을 추가하면서 얻어진 효과가 뭔지 알 수 잇을까요?