본문 바로가기
node.js

Node.js - 모듈 ~ 라우팅

by BIGENGINEER 2024. 1. 7.

 

 

 

1. node 모듈

- CommonJS 

 

1) 모듈 생성

const user = "홍길동";

const hello = (name) => {
  console.log(`${name} 님, 안녕하세요?`);
};

hello(user);

 

 

user.js

 

const user = "홍길동"
//모듈을 밖으로 내보내기 위해 사용
module.exports = user;

 

 

hello.js

const hello = (name) => {
    console.log(`${name} 님, 안녕하세요?`);
  };

  
module.exports=hello;

 

 

- 나눈 모듈을 사용하려면 require(경로); 사용.

 

app-1.js

const user = require("./user.js");
const hello = require("./hello.js");

hello(user);

 

 

* 여러개를 내보낼때

module.exports = { user1, user2 } -> 대괄호 사용

 

불러올때 

-> const { user1, user2 } = require("./users-1.js");

 

 

2) 

- __dirname : 현재 모듈이 있는 폴더

- __filename : 현재 모듈의 파일명

 

 

 

3) path 모듈

- 경로 구분자 통일

- 경로 나누거나 합침

 

- 같은 폴더 : ./

- 한 단계 위 : ../

 

 

 

const path = require("path");

//join
const pullpath = path.join('some','work','ex.txt');
console.log(fullpath); -> some/work/ex.txt

//경로 추출
const dir = path.dirname(fullpath);
console.log(dir); -> some/work;

//파일 이름 추출
const f1= path.basename(__filename);
console.log(f1);

//확장자 삭제
const f2 = path.basename(__filename, '.js');
console.log(f2);

 

 

 

4)  fs 모듈
4.1) readdir 함수

 

//readdir 필수 : fs.readdir(path[, options], callback)
//callback함수의 매개변수가 err와 files였음

 

const fs = require("fs");

fs.readdir("./",(err,files)=>{
    if(err){
        console.log(err);
    }
    console.log(files);
})
 

 

4.2) readFile 함수 

- 파일 내용 읽어오는 함수  : err,data

 

4.3) writeFile 함수 

- 파일 내용 쓰는 함수 

 

 

 

5) http 모듈로 서버 생성

 

const http = require("http");

const server = http.createServer((req,res)=>{  //콜백함수 매개변수(req,res)
    console.log("요청발생");
}); //http에서 서버 만들때 사용

//요청 발생시키는 방법
//웹 브라우저에서 내가 방금 만든 서버로 무엇인가 보여달라고 지정 


//서버 실행
server.listen(3000,()=>{
    console.log("서버 실행중");
});

 

const http = require("http");    ->  http를 모듈로 얻어옴
const server = http.createServer((res,req)=>{});  -> 서버 만들 때 createServer 함수 사용, res, req 요청, 응답에 의해 동작

 

server.listen(3000,()=>{
    console.log("서버 실행중")
})                                                             -> 서버 실행하기 위해서는 listen 이라는 함수 사용
 
 

 

* 응답 객체

const server = http.createServer((req,res)=>{  //콜백함수 매개변수(req,res)
    res.setHeader("c-type", "text/plain"); //타입 지정
    res.write("hello node"); //화면에 보여줄 내용
    res.end(); //끝
});

 

 

 

6) 라우팅

- 클라이언트에서 들어오는 요청에 따라 그에 맞는 함수 실행하는 것

.../about, .../info ...

 

 

6.1) 구조분해 할당

 

- const { url, method } = req;

-> const url = req.url;

-> const method = req.method;

 

 

6.2) 라우팅

if(method === 'GET' && url === '/home'){
	console.log("HOME");
} else if(method === 'GET' && url === '/about'){
	console.log("ABOUT");
} else{
	console.log("NotFOUND");
}

 

'node.js' 카테고리의 다른 글

Node.js - Express  (0) 2024.01.07
8장 몽고디비  (0) 2023.11.26
4장 ~ 5장  (0) 2023.11.06