내장 모듈 사용

y0ung·2021년 6월 16일
0

node.js

목록 보기
4/4
post-thumbnail

노드는 웹 브라우저에서 사용되는 자바스크립트보다 더 많은 기능을 제공한다.

노드에서는 운영체제 정보 접근, 클라이언트가 요청한 주소에 대한 정보 가져오기 같은 기능을 하는 모듈을 제공한다.

노드의 기능

1. os

웹 브라우저에서 사용되는 운영체제 정보를 가져 올수 있다.

1-1 운영체제 정보

  • os.arch() : 프로세서 아키테처 정보
  • os.platform() : 운영체제 플랫폼 정보
  • os.type() : 운영체제의 종류
  • os.uptime()) : 운영체제 부팅 이후 흐른시간(초)
  • os.hostname() : 컴퓨터 이름
  • os.release() : 운영체제 버전

노드 결과

1-2 경로

  • os.homedir() : 홈 디렉터리 경로
  • os.tmpdir() : 임시 파일 저장 경로

노드 결과

1-3 cpu 정보

  • os.cpus() : 컴퓨터의 코어 정보
  • os.cpus().length : 컴퓨터 코어정보의 갯수

노드 결과

1-4 메모리 정보

  • os.freemem() :사용 가능한 메모리(RAM)를 보여준다.
  • os.totalmem() : 전체 메모리 용량

노드 결과

os 모듈은 주로 컴퓨터 내부 자원에 빈번하게 접근하는 경우 사용된다. 즉, 일반적인 웹 서비스를 제작할 때는 사용 빈도가 높지 않다. 하지만 운영체제별로 다른 서비스를 제공하고 싶을때 os 모듈이 유용할 것이다.

2. path

폴더와 파일의 경로를 쉽게 조작하도록 도와주는 모듈이다. path모듈이 필요한 이유는 운영체제별로 경로 구분자가 다르기 때문이다. 크게 윈도우 타입과 POSIX(맥,리눅스) 타입으로 구분된다.

//윈도우
C:\User\YOUNG-PC
: 로 구별

// POSIX
/home/YOUNG-PC
: / 로 구별

path 모듈의 속성과 메소드

-path.sep : 경로의 구분자. 윈도는 \, POSIX는 /
-path.delimiter : 환경 변수의 구분자

-path.dirname(경로) : 파일이 위치한 폴더 경로
-path.extname(경로)) : 파일의 확장자
-path.basename(경로) :파일의 이름(확장자 포함)
-path.basename(경로, 확장자) : 파일의 이름만 표시하고 싶을때 두번째 인수로 파일의 확장자를 넣으면 된다.

-path.parse(경로) : 파일 경로를 root, dir, base, ext, name으로 분류 한다.
-path.format(객체) : path.parse()한 객체를 파일 경로로 합친다.
-path.normalize(경로) : /\를 실수로 여러번 사용했거나 혼용했을 때 정상적이 경로로 변환한다.

-path.isAbsolute(경로) : 파일의 경로가 절대 경로인지 상대 경로인지 true나 false로 알려준다.

-path.relative(기준경로, 비교 경로) :경로를 두개 넣으면 첫번째 경로에서 두 번째 경로로 가는 방법을 알려준다.
-path.join(경로,...) : 여러 인수를 넣으면 하나의 경로로 합친다.
-path.resolve(경로, ...) : path.join()과 비슷하지만 차이가 있다.

joinresolve의 차이
동작방식의 차이인데 , /를 만나면 path.resolve는 절대 경로로 인식해서 앞의 경로를 무시하고, path.join은 상대경로로 처리한다.

 path.join('/a','/b','c')     // result : /a/b/c/
 path.resove('/a','/b','c')   // result : b/c

상대경로, 절대경로

절대경로
: 루트 폴더나 노드 프로세스가 실행되는 위치가 기준이 된다.

상대경로
: 현재 파일이 기준. 현재 파일과 같은 경로면 점하나.를, 현재 파일 보다 한 단계 상위 경로면 점 두개..를 사용해 표현한다.

노드결과

3. url

인터넷 주소를 쉽게 조작하도록 도와주는 모듈이다. url처리에는 두가지 방식이 있다.WHATWG(웹 표준을 정하는 단체의 이름)방식의 url과 예전부터 노드에서 사용하던 방식의 url이 있다.

----을 기준으로 위에는 WHATWG방식 url이고, 아래는 기존 노드에서 사용하던 방식의 url이다.

기존 노드 방식에서는 두 메서드를 주로 사용한다.

  • url.parse(주소) : 주소를 분해. username과 password대신 auth속성이 있고, searchParams 대신 query가 있다.
  • url.format(객체) : 기존 노드의 rul과 WHATWG방식 url모두 사용할수 있다. 분해되었던 url객체를 다시 원래 상태로 조립한다.

3-1 [WHATWG]: searchParams

WHATWG방식은 search 부분을 searchParams라는 특수한 객체로 반환한다. search부분은 보통 주소를 통해 데이터를 전달할때 사용된다. search는 ?키=값형식으로 데이터를 전달한다. (여러 키가 있을 경우에는 &로 구분한다)

-searchParams.getAll(키) : 키에 해당 하는 모든 값들을 가져온다.
-searchParams.get(키) :키에 해당하는 첫 번째 값만 가져온다.
-searchParams.has(키) :해당 키가 있는지 없는지 검사한다.

-searchParams.keys() :모든 키를 반복기(iterator) 객체로 가져온다.
-myURL.searchParams.values() :searchParmas의 모든 값을 반복기 객체로 가져온다.

-searchParams.append(키,값) : 해당 키를 추가한다. 같은 키의 값이 있다면 유지하고 하나 더 추가한다.
-searchParams.set(키,값): 기존에 있던 같은 키의 값들을 모두 지우고 새로 추가한다.
-searchParams.delete(키) : 해당 키를 제거한다.

-searchParams.toString() : 조작한 searchParams 객체를 다시 문자열로 만든다. 이 문자열을 search에 대입하면 주소 객체에 반영된다.

4.querystring

기존 노드의 url을 사용할때 search 부분을 사용하기 쉽게 객체로 만드는 모듈이다.

-querystring.parse(쿼리) : url의 query부분을 자바스크립트 객체로 분해 한다.
-querystring.stringify(객체) : 분해된 query 객체를 문자열로 다시 조립한다.


참고

  • 본 내용은 Node.js 교과서 개정 2판의 내용을 공부하며 정리하였습니다.
profile
어제보다는 오늘 더 나은

0개의 댓글