coding 97

nodemon

node.js 서버를 이용하면서 코드를 변경하게 될 경우, 변경한 코드를 웹 상에서 확인하려면 서버를 껐다가 다시 켜야 변화를 감지할 수 있다. nodmon이란 node.js 서버를 내리고 올리지 않아도 소스를 변경할 때 바로 감지해서 자동으로 서버를 재시작해주는 TOOL이다. nodemon 설치 npm i nodemon -D -dev를 붙이면 개발환경에서만 사용하도록 해준다. 지금까지 코드를 수정하면 서버를 내렸다가 다시 node app.js로 다시 실행했지만, nodemon을 사용하면 코드 수정후 저장을 누르면 알아서 서버를 내렸다가 수정된 코드로 서버를 실행시켜준다. nodemon 실행 nodemon app.js

coding/Node.js 2022.08.04

함수의 {return }

아..... 바보같은놈 map( e => e.postId) map(e => {return e.postId}) // 이 같은건데 map(e => {e.postId}) // 이러고 있어따.. 이러고 있으니 값이 안찍히고 undefind가 나오지 아 멍청한놈.... return을 해줘야 값이 출력이 되는데 안쓸꺼면 {}를 해주지 말던가... 이걸로 3일이나 날려 먹고 힘들게 어려운 길을 가고 있었네... const likePost = datas.map((e) => e.postId); const likePosts = await Post.findAll({ where: { postId: likePost }, }); res.json({ data: likePosts.map((e) => { return { postId:..

coding/Error 2022.08.04

모듈(module), require(), IIFE

모듈이란 여러 독립된 기능들에 관한 코드가 모여있는 하나의 파일 모듈의 특징 - 유지보수성 기능들이 모듈화가 잘 되어있다면, 의존성을 그만큼 줄일 수 있기 때문에 어떤 기능을 개선하거나 수정할 때 편하다. - 네임스페이스화 js의 전역 변수는 전역 공간을 차지하는데 모듈을 분리하면 모듈만의 네임스페이스를 갖기 때문에 중복을 방지한다. - 재사용성 똑같은 코드를 반복하지 않고, 모듈로 분리시켜서 필요할 때마다 사용 할 수 있다. 모듈 유형 - 외장 모듈 일반 node.js 개발자들이 만들어 놓은 모듈(라이브러리) 외장 모듈을 사용 하기 위해선 npm을 사용 - 내장 모듈 node.js를 설치하면 제공되는 기본 모듈 module객체 확인 console.log(module) /* Module { id: '.'..

coding/Node.js 2022.08.03

sequelize CRUD 사용법

테이블 조회(findAll, findOne) findAll 쿼리 결과를 배열 객체로 반환 조건에 맞는 데이터 전부를 배열로 반환한다. const { User } = require('./models'); // 유저 테이블 안에 있는 모든 데이터를 가져옴 const user = User.findAll({}) // age가 20인 데이터들을 가져옴 const user = User.findAll({where:{age:20}}) findOne 쿼리 결과를 객체로 반환 조건에 맞는 데이터 하나만 객체로 반환한다. const { User } = require('./models'); // 조건에 맞는 데이터 하나만 가져온다. const user = User.findOne({}) // 이름이 jin인 데이터 하나만 가져..

coding/Node.js 2022.08.02

배열과 유사 배열 객체

유사 배열 객체 이름 그대로 배열과 유사한 객체 배열처럼 보이지만, 사실 key가 숫자이고, length 값을 가지고 있는 객체 JS 에서 querySelectorAll이나 document.body.children으로 엘리먼트를 가져오면 유사 배열 객체에 담겨서 온다. // 배열 var arr1 = ['aaa', 'bbb', 'ccc']; console.log(arr1); // (3) ["aaa", "bbb", "ccc"] // 유사배열 var arr2 = document.body.children; console.log(arr2); // HTMLCollection(10) [header.main-header, aside.main-sidebar, div.wrapper, div#playerArea, // if..

coding/JS 2022.08.01

Restful API

Rest API API 데이터와 기능의 집합을 제공하여 컴퓨터 프로그램간 상호작용을 촉진하여, 서로 정보 교환을 가능 하도록 하는것 프로그램을 위한 인터페이스. 즉, 프로그램 간 커뮤니케이션을 담당하는 기능 Rest API에서 Rest 는 Representational State Transfer의 약자로 소프트웨어 프로그램 아키텍처의 한 형식이다. 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다. Rest는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용 할 수 있는 아키텍처 스타일이다. Rest의 개념 웹에서 데이터를 전송하고 처리하는 방법을 정의한 인터페이스 HTTP URI를 통해 자원을 명시하고, HTT..

coding/IT, CS 2022.07.31

package.json

package.json 현재 프로젝트에 관한 정보와 패키지 매니저(npm, yarn)을 통해 설치한 모듈들의 의존성을 관리 하는 파일 배포한 모듈 정보를 담고 있으며, JSON 형식의 파일 생성방법 npm init // 프로젝트명, 설명 등 작성할 내용이 있을 경우 또는, npm init -y // 입력할 내용없이 package.json 생성 직접 작성할 수도 있고 npm init 명령을 통해서 자동으로 생성가능 함 기본 구조 name 프로젝트 이름으로, 가장 중요하다. 중앙 저장소에 배포할 때 version과 함께 필수 항목이다. version 프로젝트 버전을 정의힌다. 3단계 버전을 사용하며, - 로 태그 이름을 적을 수 있다. description 프로젝트 설명으로, 문자열로 기술한다. npm se..

coding/Node.js 2022.07.31

SyntaxError: Unexpected token } in JSON at position 67

api로 요청과 응답을 보내면서 body에 여러 값들을 넣고 생성이나 수정을 하기 위해서 요청을 보내면 SyntaxError: Unexpected token } in JSON at position 67 같은 에러를 종종 만났다.... 위와 같은 오류 SyntaxError 에러라고 문법상 오류가 있을때 나타나는 오류이다. : 나 ) , 같이 넣어야 할 문자를 넣지 않아서 나타나기도 하고, 오타로 인해서 나타나기도 하고 이유는 다향하지만 어디서 문제가 났는지 잘 알려주기때문에 잘 찾아서 수정하면 금방 해결되는 문제 인것같다. 근데 이번 내가본 오류는 찾기가 어려웠다. 내가 친 코드의 문제가 아니라 body에 값을 넣어서 보내줄때 실수를 한거여서 내가 친 코드가 아닌 다른 파일에서 오류가 난다고 해서 잘 찾을..

coding/Error 2022.07.29

const castError = new CastError();

사용자 인증 미들웨어를 만들다가 const castError = new CastError(); 라는 오류를 만났다 try { const { userId } = jwt.verify(tokenValue, secretKey); User.findById({ userId }).then((user) => { res.locals.user = user; next(); }); } catch (err) { res.status(401).send({ errMessage: "로그인이 필요합니다.", }); return; } 대략 이런 미들웨어 구문에서 id 값을 찾아서 res.locals에 담아주려고 하는데 id로 찾는 부분에서 문제가 일어난듯 했다. 구글링을해서 찾아보니 findById가 아닌 findOne으로 값을 찾으면 ..

coding/Error 2022.07.29

npm jsonwebtoken

전에도 js에서 ajax를 이용하여 JWT 토큰을 만들어 로그인을 시도하고 로그인정보를 확인하는 JWT에 다룬적이 있다. 이번엔 node에서 jsonwebtoken을 이용하여 토큰을 생성하여 로그인에 대해 알아보자 token 방식의 특징 - 사용자 정보를 일일히 서버의 세션에 저장하지 않고, 사용자의 로컬에 저장. - 사용자가 요청을 보낼 때마다 유저 정보 확인을 일일히 하지 않아도 됨. - 웹 표준 기반 기술로써, 여러 환경에서 지원 이러한 토큰 방식을 사용하기 위해서는 JWT(Json Web Token) 기술을 사용한다. JWT 설치 npm i jsonwebtoken 토큰 생성 방법 const jwt = require('jsonwebtoken'); var userInfo = {id: 1, userna..

coding/Node.js 2022.07.29