일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 프록시배포구조
- vue기초
- 체인의정석
- git rebase
- 러스트기초
- 스마트컨트렉트프록시
- 머신러닝기초
- 스마트 컨트렉트 함수이름 중복
- chainlink 설명
- ethers websocket
- 티스토리챌린지
- SBT표준
- 스마트컨트렉트테스트
- 오블완
- 스마트컨트렉트 함수이름 중복 호출
- nest.js설명
- Vue.js
- ethers typescript
- 스마트컨트렉트 예약어 함수이름 중복
- ethers
- Vue
- ambiguous function description
- ethers v6
- 러스트 기초 학습
- multicall
- 컨트렉트 배포 자동화
- ethers type
- rust 기초
- 러스트 기초
- 컨트렉트 동일한 함수이름 호출
- Today
- Total
체인의정석
Node.js에서 자주 쓰이는 Javascript 문법 정리 1편 본문
이번 새로운 프로젝트에 온보딩 하면서 오랜만에 보거나 잘 안쓰던 문법인데 다른 분들이 사용해두었던 문법 위주로 업데이트 중이다.
(자바스크립트 -> 타입스크립트 -> 자바스크립트를 보다보니 새삼 타입스크립트의 필요성을 느끼게 된다 ㅋㅋㅋㅋ)
1. 현재 절대 경로 지정하는법
__dirname : 현재 절대 경로를 의미
https://chinsun9.github.io/2020/11/16/nodejs-dirname/
현재 절대경로 안에 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
3. path.extname(파일경로)
파일경로를 받아올 시에 해당 파일 경로의 파일 확장자 이름을 가져완다.
이때 path는 모듈로 가져온다.
const path = require('path');
https://www.w3schools.com/nodejs/shownodejs_cmd.asp?filename=demo_met_path_extname
4. array.includes
포함여부 true, false로 표시
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/includes
5. map
배열의 요소를 순회하며 => 이후의 명령어를 실행
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/map
6. slice
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/slice
문자열, 배열에 모두 사용가능 첫번재 요소/글자를 0부터 하여서 사용
slice.(0,10) 이라면 0번 요소부터 종료점인 10까지의 Index가 짤림
index.js에서 위의 단어들을 사용해서 반복문으로 라우터를 띄워주면 코드가 훨씬 깔끔해진다.
그리고 세부 경로는 연결된 파일에다가 다시한번 라우팅을 해주면 된다.
7. fs.readdirSync
현재 경로에 있는 파일을 모두 불러오는 역할을 한다.
만약 라우터에 여러 파일이 있다면? 해당 경로에 있는 파일 이름을 모두 불러온 후에 유효한 파일만 검사하여 url을 가져올 수 있다.
8. router.use("경로이름","실제 경로로 설정할 위치)
router.use 후에 경로 이름을 넣으면 해당 경로로 api의 요청이 들어왔을 때 그 다음 인자값으로 들어오는 위치로 라우터의 경로를 지정해 준다.
9. 비구조화 할당
자료에서 전체를 가져오면 메모리를 더 많이 차지하게 된다. 비구조화 할당을 쓰면 특정 부분만 가져와서 할당 하는 것이기 때문에 메모리가 절약된다.
비구조화 할당 시 ...를 사용할 경우 이후의 값들을 한번에 불러와서 사용할 수 있다.
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
12. lodash 모듈 중 _.isFinite()
유한한 숫자 인지의 여부 만약 숫자값인지 체크하고 싶을때 쓰면 된다.
const _ = require("lodash");
_.isFinite();
'개발 > backend' 카테고리의 다른 글
자바스크립트 주석 달기 (업데이트) (0) | 2022.11.07 |
---|---|
Class에서 static 사용하기 (2) | 2022.11.02 |
Mac Backend 기본세팅 - 기존 프로젝트에 온보딩 하기 (0) | 2022.10.28 |
env 환경 변수 파일 상위레벨까지 한번에 설정하기 (0) | 2022.09.20 |
npm 모듈 버전 다운그레이드 (0) | 2022.08.01 |