본문 바로가기

Coding345

Sequelize.js Association OneToMany(hasMany) 정리 이제 OneToMany(hasMany) 차례이다.http://docs.sequelizejs.com/manual/tutorial/associations.html에서 OneToMany() 부분을 번역했다. One-To-Many associations (hasMany)One-To-Many는 하나의 source에서 여러개의 target에 연결되어 있는 형태를 말한다. target들은 정확히 하나의 source에 연결되어있다.const User = sequelize.define('user', {/* ... */}) const Project = sequelize.define('project', {/* ... */}) // 먼저 hasMany 를 정의한다. Project.hasMany(User, {as: 'Worke.. 2018. 7. 16.
Sequelize.js Association belongsTo 정리 개인적으로 ORM을 사용하는건 굉장히 불편하다.SQL Statement에 익숙하지 않은 사람들은 ORM을 통해 사용하는 언어의 형태로 쉽게 작성이가능하여 편하다고 느껴진다고 하는데, 나같은 경우에는 그냥 SQL문으로는 이렇게 하면 되겠지라고쉽게 생각이 들어도 ORM에 맞춰서 코드를 작성하려고 하다 보면 어려웠다.또한 오늘은 Sequelize.js에 대해 작성하는 글이지만 이전에 장고를 사용하면서사용했던 ORM은 또 그것만의 문법이 존재했다.튼, 요즘에는 Node.js를 공부하고 있는데 데이터베이스와 통신하기 위해 Sequelize.js를 사용하고 있고관계 설정에 대한 부분이 헷갈리는 부분이 조금씩 존재하여 아예 그냥 통번역을 해버리기로 했다.본 포스팅은 http://docs.sequelizejs.com/.. 2018. 7. 15.
Javascript ES6 async/await에 대해서 간단하게 적는다.ES7(EcmaScript 7)에는 async/await라는 기능이 존재한다.이전에는 Promise를 통해 코드를 작성했다면, 그 기능을 async/await로 대체할 수 있다.관련 비교하는 내용은 타 블로그에 자세하게 나와있으므로 설명은 생략한다.튼, 코드를 작성하다가 아래와 같은 루틴의 코드를 만들었었다. const test = async () => { await setTimeout(() => { console.log("timeout"); }, 2000); await console.log(1); await console.log(2);} test(); 내가 예상한 결과값은 아래와 같다. timeout12 하지만 위처럼 돌려보면, 12timeout 형식으로 출력됐다.처음에는 연속적인 동기.. 2018. 7. 11.
Node.js express CORS 허용하는 방법 보통 SPA(Single Page Application)에서는 백엔드로 API서버를 두고해당 서버에서 정보를 받아온 후 프론트에서 랜더링 해주는 방식으로 구현한다.나도 이번에 CMS비슷한 사이트를 구축하고 있다.백엔드는 Node.js에 Express엔진을 올려서 사용하고 있으며 프론트는 React.js를 사용중이다.프론트단에서 API서버로 fetch()를 하고 있었는데 아래와 같은 에러가 발생했다. Failed to load http://localhost:4000/api/login: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not.. 2018. 7. 10.
Node.js Middleware 구현 및 등록하는 방법 Node.js에는 미들웨어(Middleware)라는 것이 존재한다.단어의 뜻 그대로 요청 중간마다 거쳐가는 지점이라고 생각하면 이해가 쉬울 것 같다.예를 들어 /test 로 요청을 했을 때 Main -> test로 들어가는 일반적인 구조가 있다고 가정해보자.여기에 middle이라는 미들웨어를 추가하면 Main -> middle -> test 의 순서로 요청이 들어간다.미들웨어는 상당히 유용하게 사용할 곳이 많다.예를 들어 사용자의 요청이 들어올 때마다 로깅하는 시스템이 필요하다고 가정해보자.먼저 middle.js라는 파일을 하나 생성한다. const test = (req, res, next) => { console.log("Middle"); next();} export default test; 그리고 위.. 2018. 7. 9.
GraphQL MySQL로 API서버 구축 방법 어제부터 쭉 GraphQL을 보고 있다.나름 매력적이라고 느껴지긴 하는데, 음..아직 잘 모르겠다.실 서비스에 적용해봐야 뭔가 확실히 감이 올 것 같은데 아직은 테스트 케이스로 작성하다보니확실하게 와닿지가 않는다.튼, 오늘 공부한 내용을 기록한다.오늘은 GraphQL을 통해 API구축을 해봤다. 전체 목록 조회/단일 조회/수정/삭제/삽입 총 5가지의 기능을 구현했다.또한 데이터베이스는 MySQL을 사용했다. 또한 Node.js에서 MySQL과 통신하기 위한 라이브러리는 Sequelize를 사용했다.이 부분에서 예제가 그리 많지 않아서 살짝 고생했다.먼저 폴더를 생성하고 yarn init후, 아래의 라이브러리를 설치해준다. "dependencies": { "graphql-yoga": "^1.14.10", .. 2018. 7. 2.