본문 바로가기

NodeJs28

how to change function to arrow function //일반적인 함수 function add(x,y) { return x + y } //arrow 1 const add = (x,y) => { return x+y; } //arrow 2 const add = (x,y) => x + y; //arrow 3 const add = (x,y) => (x,y); 일반적인 function 키워드 대신 => 로 대체 하도록 한다. 2020. 1. 11.
express 와 singleton 패턴을 사용한 api server 구현 MSA 와 무중단 배포 특성에 맞는 api server 를 구축 해보도록한다. //server.js 'use strict' const express = require('express') const http = require('http') const cookieParser = require('cookie-parser') //http.Server 를 통해 확장하여 싱글톤 패턴으로 만들도록 한다. //서버가 이중으로 생성되는것을 막기 위해 싱글톤으로 구현하도록 한다. //MSA 환경을 고려했을때 일관성있게 분산된 서버들의 상태를 관리하기 위함이다. //즉 생성자 내부에서 express 생성을 한번만 생성하도록 싱글톤 패턴을 적용하는 기법이다. class ApiServer extends http.Server {.. 2020. 1. 11.
static method factory pattern 'use statict' /** * static method factory pattern * 기존 construct 를 통한 생성이 아닌 static method 로 객체 생성 */ class DatabaseManager { constructor(settings) {} //초기화를 생성자가 아닌 static 으로 생성하도록 한다. static async build(settings) { const config = await this.init(settings) return new DatabaseManager(config) } query() {} async init() {} // 최초 1회 실행 async newMember() {} async deleteMember() {} } //usage const man.. 2020. 1. 10.
TDD - frameworks 소개 mocha: front/backend 에서 테스트 가능 istanbul: 라이브러리이다. 코드커버리지에 가깝다 만든 코드 혹은 모듈, 라이브러리까지도 커버가 가능 함수도 커버리지 가능. 코멘드라인으로 실행 가능 결과를 리포팅 해준다. tape: 기능단위 테스트 가능하다. jest: 프론트에서 많이 사용된다. 모킹 가능하다. cypress: e2e 테스트 가능하다. 코드로서 자동화 가상의 데이터를 주입하여 자동 테스트 가능 2020. 1. 10.
file const fs = require('fs') //비구조화 방식으로 필요한것만 받음 const {promisify} = require('util') //콜백함수로 사용 const read = promisify(fs.readFile) const write = promisify(fs.writeFile) const writeAndRead = async (data = '') => { try{ await write('text.txt',data) return (await read('text.txt')) }catch(e){ console.error(e) } } writeAndread('some contents') 2020. 1. 10.
destructing const obj = { title:'nodejs', value:'노드' } //비구조화로 변환 const {title,value} = obj //배열도 비구조화로 변환 할수있음. 자리수를 맞춰야한다. const arr = [1,2,3] const [,a,b] = arr 2020. 1. 10.