node.js_basic

BABY CAT·2022년 9월 25일
0

node.js

목록 보기
2/18

1. path 모듈

ㄱ. __dirname, __filename

const path = require("path");
console.log(__dirname); // 이프로그램이잇는디렉토리
   // C:\Workspace\03.BackEnd\01.NodeJS
console.log(__filename); //이프로그램의파일이름
   // C:\Workspace\03.BackEnd\01.NodeJS\01.전역변수.js
//상대경로 relative path
const relPath = "tmp/textfile.txt"

절대경로 absolute path 처음부터끝까지

const absPath = path.join(__dirname, "tmp", "textfile.txt")
console.log(absPath)

위아래둘다가능

const absPath = path.join(__dirname, relPath)
console.log(absPath)

2. process

ㄱ. process.

console.log(process.env);   // 환경 설정
console.log(process.env.COMPUTERNAME); //컴퓨터네임 // CSH
console.log('process.version:', process.version);   // NodeJS version  // process.version: v16.17.0
console.log('process.arch:', process.arch);
console.log('process.platform:', process.platform);
console.log('process.argv:', process.argv);
process.exit(0);        // 정상 종료, 코드값이 -1은 비정상 종료
console.log('프로세스');    // unreachable

// Hoisting - 함수와 변수 선언을 프로그램의 제일 위로 올리는 것
function aa() {
   let a = 2;
   return a;
   let b = 3;   // unreachable
}

ㄴ. process.on

process.on('exit', code => {
   console.log('프로그램 종료'); // 종료시점에 발동
   console.log('exit code:', code);
});

process.on('uncaughtException', error => {
   console.log('예외 발생'); // 에러 발생시 발동
   console.log('예외 명:', error.name);
   console.log('예외 내용:', error.message);
});

// 예외 발생
error.error.error(); // 에러 유발
process.exit(-1); // 종료

3. error.error.error();

에러를 발생시킨다

4. cmd창에서 input 받는 방법

// cmd 실행

const readline = require('readline');
const r1 = readline.createInterface({
    input: process.stdin,               // standard input, terminal(keyboard)
    output: process.stdout              // standard output, terminal(monitor)
});
r1.setPrompt('숫자를 입력하세요.> '); //인풋받을 때 문구를 추가
r1.prompt(); // 인풋 받는 코드

// I/O(input, 파일 읽기/쓰기, 데이터 통신 등) 작업은 콜백 함수에서 처리함
r1.on('line', buf => {          // 숫자를 입력하고 엔터 키를 쳤을때
    // buf 는 인풋받은 것
    let num = parseInt(buf);
    let evenOdd = (num % 2 == 0) ? '짝수' : '홀수';
    console.log(`입력한 숫자는 ${num}이고 ${evenOdd}입니다.`);

    r1.close()      // 끝낼 때 반드시 처리해야 함
});

5. os 모듈

const os = require("os");

console.log(os.cpus()); //cpu정보
console.log(os.cpus().length); //시피유 수

console.log(Math.round(os.totalmem()/Math.pow(2,30), 4)+'GB', os.freemem());
                      토탈메모리 기가바이트변환               ,   프리메모리

console.log("토탈메모리",os.totalmem()); // 아래서 기가바이트 단위로 변환
console.log("토탈메모리 "+os.totalmem()/Math.pow(2,30)+" GB"); 

console.log("프리메모리",os.freemem()); // 아래서 기가바이트 단위로 변환
console.log("프리메모리 "+os.freemem()/Math.pow(2,30)+" GB"); 
 
console.log(os.networkInterfaces());  //네트워크정보

6. url 모듈

URL 모듈은 parse(), format(), resolve()3가지 메소드를 가지고 있다. 
이 중 사용자로부터 문자열 형식으로 받은 URL 요청을 처리하기 위해 'parse()'가 가장 많이 활용된다. 

parse() : URL 문자열을 입력하면 URL 객체를 만든다. 'format()'의 반대  
format() : URL 객체를 입력하면 URL 문자열을 반환한다. 'parse()'의 반대  
resolve() :  상대 URL을 절대 URL로 변경한다. 
//url 모듈
const url = require("url"); // url 변수가 아닌 모듈

const urlSample = "https://www.hanbit.co.kr/academy/books/book_view.html?p_code=B8613955880"
const parseObject = url.parse(urlSample);

console.log(parseObject); // 각종 정보
console.log(parseObject.href);  //"https://www.hanbit.co.kr/academy/books/book_view.html?p_code=B8613955880"
console.log(parseObject.query); //p_code=B8613955880

0개의 댓글