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 |