체인의정석

Node.js에서 자주 쓰이는 Javascript 문법 정리 1편 본문

개발/backend

Node.js에서 자주 쓰이는 Javascript 문법 정리 1편

체인의정석 2022. 10. 28. 13:55
728x90
반응형

이번 새로운 프로젝트에 온보딩 하면서 오랜만에 보거나 잘 안쓰던 문법인데 다른 분들이 사용해두었던 문법 위주로 업데이트 중이다.

(자바스크립트 -> 타입스크립트 -> 자바스크립트를 보다보니 새삼 타입스크립트의 필요성을 느끼게 된다 ㅋㅋㅋㅋ)

 

1. 현재 절대 경로 지정하는법

__dirname : 현재 절대 경로를 의미

https://chinsun9.github.io/2020/11/16/nodejs-dirname/

 

nodejs __dirname

index.js12log(`__dirname`, __dirname);log(`process.cwd()`, process.cwd()); C:\git>node tmp\app-root\index.js__dirname C:\git\tmp\app-rootprocess.cwd() C:\git __dirname은 현재 실행하는 파일의 절대경로이다 proce

chinsun9.github.io

현재 절대경로 안에 rotes 관련 파일을 모두 넣으면 __dirname 안에 모두 담을 수 있다.

 

2. .filter

 

Array.filter는 다음과 같은작업을 해준다. 

filter(조건식)을 할시 배열에서 맞는 조건의 값을 리턴해준다.

const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];

const result = words.filter(word => word.length > 6);

console.log(result);
// expected output: Array ["exuberant", "destruction", "present"]


https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

 

Array.prototype.filter() - JavaScript | MDN

filter() 메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다.

developer.mozilla.org

3. path.extname(파일경로)

파일경로를 받아올 시에 해당 파일 경로의 파일 확장자 이름을 가져완다.

 

이때 path는 모듈로 가져온다.

const path = require('path');

 

https://www.w3schools.com/nodejs/shownodejs_cmd.asp?filename=demo_met_path_extname 

 

W3Schools online NODEJS editor

The W3Schools online code editor allows you to edit code and view the result in your browser

www.w3schools.com

4. array.includes

포함여부 true, false로 표시

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/includes

 

Array.prototype.includes() - JavaScript | MDN

includes() 메서드는 배열이 특정 요소를 포함하고 있는지 판별합니다.

developer.mozilla.org

5. map 

배열의 요소를 순회하며 => 이후의 명령어를 실행

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/map

 

Array.prototype.map() - JavaScript | MDN

map() 메서드는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다.

developer.mozilla.org

6. slice

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/slice

 

String.prototype.slice() - JavaScript | MDN

slice() 메소드는 문자열의 일부를 추출하면서 새로운 문자열을 반환합니다.

developer.mozilla.org

문자열, 배열에 모두 사용가능 첫번재 요소/글자를 0부터 하여서 사용 
slice.(0,10) 이라면 0번 요소부터 종료점인 10까지의 Index가 짤림

 

index.js에서 위의 단어들을 사용해서 반복문으로 라우터를 띄워주면 코드가 훨씬 깔끔해진다.

그리고 세부 경로는 연결된 파일에다가 다시한번 라우팅을 해주면 된다.

 

7. fs.readdirSync 

현재 경로에 있는 파일을 모두 불러오는 역할을 한다.

만약 라우터에 여러 파일이 있다면? 해당 경로에 있는 파일 이름을 모두 불러온 후에 유효한 파일만 검사하여 url을 가져올 수 있다.

 

8. router.use("경로이름","실제 경로로 설정할 위치)

router.use 후에 경로 이름을 넣으면 해당 경로로 api의 요청이 들어왔을 때 그 다음 인자값으로 들어오는 위치로 라우터의 경로를 지정해 준다.

 

9. 비구조화 할당

자료에서 전체를 가져오면 메모리를 더 많이 차지하게 된다. 비구조화 할당을 쓰면 특정 부분만 가져와서 할당 하는 것이기 때문에 메모리가 절약된다.

 

비구조화 할당 시 ...를 사용할 경우 이후의 값들을 한번에 불러와서 사용할 수 있다.

https://yuddomack.tistory.com/entry/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EB%AC%B8%EB%B2%95-%EB%B9%84%EA%B5%AC%EC%A1%B0%ED%99%94-%ED%95%A0%EB%8B%B9

 

자바스크립트 {...} [...] 문법 (비구조화 할당/구조분해 할당)

자바스크립트의 문법에 대한 글을 검색하면 대부분 let, const 혹은 화살 함수(arrow function)에 대한 이야기가 주를 이룹니다. 이번 시간에는 흔히 알려지지 않았지만 유용한 비구조화 할당 문법을

yuddomack.tistory.com

10. log에서 reqLog, resLog 나눠서 기록하기

const log = require("log4js");
const reqLog = log.getLogger("request");
const resLog = log.getLogger("response");

req와 res에 대한 로그를 남긴다.

 

자바스크립트에서는 타입이 없기 때문에 타입을 지정해 둘 수 없다. 따라서 어딘가 클래스 형태로 만든 후 상황에 따라서 맞는 형태로 응답을 보내는 형태가 좋다.

 

11. Object.keys

Object를 순회 하면서 키 값을 뽑아내는 역할을 한다.

이건 정말 유용해 보인다.

object안에 여러개가 들어 있는 형태라면 이걸 통해서 나온 key를 가지고 유효성을 검사한 후 결과 값만 넣는 식으로 하거나 할 수 있다.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/keys

 

Object.keys() - JavaScript | MDN

Object.keys() 메소드는 주어진 객체의 속성 이름들을 일반적인 반복문과 동일한 순서로 순회되는 열거할 수 있는 배열로 반환합니다.

developer.mozilla.org

12. lodash 모듈 중 _.isFinite()

유한한 숫자 인지의 여부 만약 숫자값인지 체크하고 싶을때 쓰면 된다.

const _ = require("lodash");

_.isFinite();

 

728x90
반응형
Comments