목록공부 (179)
저장을 습관화
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cI5ECf/btsmnPPQOjN/C9soR4fS7Xyp9YBEFKW8KK/img.png)
- npm install (packge name) -S npm을 이용해서 패키지를 설치할때의 옵션 -S 혹은 --save 이 옵션을 넣고 설치한다면 package.json 파일의 "dependencies" 목록에 해당 내용이 등록된다. ex) 이 "종속성" 목록에 패키지가 등록되어 있다면 내가 작업하던 프로젝트를 다른 사람이 클론해갔을때, 혹은 다른 사람의 프로젝트를 내가 클론해왔을때 터미널에서 "npm install" 만 입력해준다면 목록의 패키지들을 한번에 전부 설치할 수 있다. 다른 사람과 협업하는 상황에서 초기 구성을 맡고 있는 역할이라면 반드시 이 옵션과 함께 패키지를 설치도록 하자 - nodemon 파일을 수정 후 저장할때마다 app.js도 재실행시켜줄때 사용하는 nodemon 이번에 클론 받..
- sequelize의 연산자 op // 예시 await Posts.update( { title, content }, // 수정할 컬럼이 무엇인가 { where: { [Op.and]: [{ postId }, { password }], // Op.and 모든 조건에 일치해야 한다. // 여기서의 역할은 게시글의 postId와 password가 일치할때 수정한다. }, } ); 강의 중에 이렇게 쓴 부분이 있었음.. 코드의 내용은 Posts.update() 업데이트를 진행할거고 이에 대한 매개변수를 받을거다. DB의 컬럼 title과 content가 수정할 부분이다. where는 조건을 묻는 문법 ({ where: {id: postId},}) 코드로 컬럼 id의 내용과 파라미터를 할당한 변수 postId과 ..
https://www.youtube.com/playlist?list=PLcqDmjxt30RsGIPBBKX7xl05VuqJeCTFn 노드교과서 개정3판 www.youtube.com 무료 강의 노드의 정의부터 sequelize(mySQL), mongoose(mongoDB) 적용까지 타입스크립트같은 이 이후 내용은 인프런에서 https://www.inflearn.com/course/%EB%85%B8%EB%93%9C-js-%EA%B5%90%EA%B3%BC%EC%84%9C?inst=25c32bef&utm_source=instructor&utm_medium=referral&utm_campaign=inflearn_%ED%8A%B8%EB%9E%98%ED%94%BD_promotion-link [개정3판] Node.js ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cPrlNQ/btslUtT1Oi3/q8Oh1Xs1EUoBFJaoIZ2mv0/img.png)
메모 환경은 node.js + express + mysql + sequelize 대충 아래와 같이 작성하고 있고, // 게시글 상세 조회 router.get('/:postId', async (req, res) => { const { postId } = req.params; try { const post = await Post.findOne({ include: [ { model: User, attributes: ['nickname'], }, ], attributes: [ 'id', 'userId', 'title', 'content', 'likes', 'createdAt', 'updatedAt', ], where: { id: postId }, order: [['createdAt', 'DESC']], }); ..
- 증상 게시글 내용 수정 API 작성 중 의도하지 않은 컬럼 'postId'에 접근하여 에러가 발생함 하지만 작성한 코드에는 객체로써 생성한 postId 이외에는 postId에 대한 내용이 들어있지 않은 상태 Executing (default): SELECT `id`, `title`, `content`, `userId`, `likes`, `createdAt`, `updatedAt`, `postId` FROM `Posts` AS `Post` WHERE `Post`.`id` = '1'; node:internal/process/promises:288 triggerUncaughtException(err, true /* fromPromise */); ^ Error at Query.run (C:(생략)\node_..
- 증상 게시글 작성 API 테스트 중 post가 되지 않는 상황 관련 로그 const post = await Post.create({ title, content, password }); ^ TypeError: Cannot read properties of undefined (reading 'create') at C:(생략)\routes\posts.js:51:27 at Layer.handle [as handle_request] (C:(생략)\node_modules\express\lib\router\layer.js:95:5) at next (C:(생략)\node_modules\express\lib\router\route.js:144:13) at Route.dispatch (C:(생략)\node_module..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/qEawu/btslJ24DcAK/sVKolaINoSdEZUlVyD9Zsk/img.png)
지난 VSC에서 GitHub repository로 바로 올리기에 이어서.. https://ctrs.tistory.com/87 VSC에서 GitHub repository로 바로 올리기 Windows 10 기준 1. 작업 중인 컴퓨터의 SSH Key 발급 CMD ssh-keygen -t rsa -b 4096 -C "(github 가입할때 사용했던 이메일 주소)" SSH Key 발급 명령어를 입력시 파일을 생성할 경로는 어디인지, 패스워드는 사용 ctrs.tistory.com Windows 10 기준 팀원의 입장 로컬 작업환경에서 원격 저장소로 업로드하는 것과 반대로 원격 저장소(GitHub)에 존재하는 내용을 로컬로 가지고 오고 싶을때 예를들어 협업을 위해 다른 사람의 작업 내용을 fork한 다음, 로컬로 ..
- warning: in the working copy of 'file.js', LF will be replaced by CRLF the next time Git touches it 코딩 작업 후 git add를 했더니 출력된 메세지 $ git add file.js warning: in the working copy of 'routes/posts.js', LF will be replaced by CRLF the next time Git touches it 이게 뭔가 싶어 검색하니까 내가 add한 파일에 들어있는 줄바꿈 문자 LF를 git이 알아서 CRLF로 변환하여 관리하겠다는 의미이다. LF는 macOS, Linux에서 사용되는 줄바꿈 문자이고, CRLF는 Windows에서 사용되는 줄바꿈 문자이다. ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bL2Uro/btslbpeOY66/AFCR9hhWGPakGGaXei3Qok/img.png)
Windows 10 기준 1. 작업 중인 컴퓨터의 SSH Key 발급 CMD ssh-keygen -t rsa -b 4096 -C "(github 가입할때 사용했던 이메일 주소)" SSH Key 발급 명령어를 입력시 파일을 생성할 경로는 어디인지, 패스워드는 사용할 것인지 묻는다 별도의 설정없이 생성이 완료될때까지 엔터를 누른다. 생성 완료 이 중 id_rsa.pub의 내용을 GitHub에 보내줄거다. cd C:\Users\admin\.ssh type id_rsa.pub 윈도우 CMD에서 파일을 읽을때는 type 명령어를 사용한다. 리눅스의 cat과 같다. 2. 발급받은 SSH Key를 GitHub에 등록 GitHub 접속 -> 우측 상단 프로필 사진 클릭 -> Settings 좌측 목록에서 Access ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/si9dq/btslaHfJj4a/GyudutceMgo6VtyaLMIZrK/img.png)
Request란 클라이언트가 서버에게 전달하려는 정보다 메시지를 담는 객체이다 Reponse란 서버에서 클라이언트로 응답 메시지를 전송시켜주는 객체이다. express 모듈에서의 req, res 객체 (주요 사용되는 것은 볼드+밑줄) - req req.app: req 객체를 통해 app 객체에 접근할 수 있다. req.ip: 요청한 Client의 IP 주소가 담겨 있다. req.body: Request를 호출할 때 body로 전달된 정보가 담긴 객체 req.params: 라우터 매개 변수에 대한 정보가 담긴 객체 req.query: Request를 호출할 때 쿼리 스트링으로 전달된 정보가 담긴 객체 req.cookies: Request를 호출할 때 Cookie 정보가 담긴 객체 req.get(Header..