[NodeJS] Node.js 기초 모듈
node js의 편리하고 다양한 모듈을 사용하기 위해선 package.json을 설치해야합니다. 설치하는 방법은 프로젝트 경로에서 터미널을 열고
$ npm init
를 입력해줍니다. 그럼 아래와 같이 설정을 어떻게 할 것인지에 대해 질문하는 내용이 나오는데 별 다른 설정은 설치 이후에도 설정할 수 있기 때문에 전부 enter를 눌러 설치를 진행해 줍니다.
- 위와 같은 설정이 귀찮다면 $ npm init -y 를 사용하여 바로 설치가 가능합니다. (-y는 전부 yes로 하겠다는 의미입니다.)
1. fs 모듈 (File System)
파일 처리와 관련된 모듈.
node.js 에서 가장 중요하고 기초적인 모듈.
-
동기식과 비동기식
1) 동기식 : 프로그램이 동작하는 상태에서 완전히 해당 내용을 끝내고 다음으로 넘기는 방식, 순차적.
2) 비동기식 : 동작이 끝나지 않은 상태에서도 제어권을 넘긴 후에 프로그램을 계속 진행하는 방식. -
fs 메소드(Method)
readFile(): 파일을 비동기적으로 읽음
ex) fs.readFile(filename, [options], callback)
readFileSync() : 파일을 동기적으로 읽음
ex) fs.readFileSync(filename, [options])
writeFile() : 파일을 비동기적으로 씀
ex) fs.writeFile(filename, data, [options], callback)
writeFileSync() : 파일을 동기적으로 씀
ex) fs.writeFileSync(filename, [options]) -
사용 방법
<script> const fs = require('fs'); // readFile fs.readFile('./text1.txt', 'utf-8', (err, data) => { if(err) { console.log(err); } else { console.log('비동기식으로 파일 읽기 : ' + data); } }); // readFileSync const text = fs.readFileSync('./text1.txt', 'utf-8'); console.log('동기식으로 파일 읽기 : ' + text); // writeFile const data = "Hello Node.js!"; fs.writeFile('./text2.txt', data, 'utf-8', (err) => { if(err) { console.log(err); } else { console.log('비동기식으로 파일 저장'); } }); // writeFileSync fs.writeFileSync('./text3.txt', data, 'utf-8'); console.log('동기식으로 파일 저장'); </script>
2. http 모듈
http 웹 서버를 생성하는 것과 관련된 모든 기능을 담당.
-
http 메소드(Method)
createServer() : server 객체를 생성
writeHead() : 응답 header를 구성
end() : 응답 body를 작성
listen() : 서버를 실행하고 클라이언트를 기다림 -
MIME 형식
응답의 형식이 무엇인지를 Header에 포함된 MIME를 통해 브라우저에게 알려줍니다. 브라우저는 이것을 참고하여 응답을 어떻게 해석할지 알 수 있습니다.
MDN 공식문서text/plain : 일반적인 text 파일
text/html : html 형식 파일
text/css : css 형식 파일
text/xml : xml 형식 파일
image/jpeg : jpeg 이미지 파일
image/png : png 이미지 파일
audio/mp3 : mp3 음악 파일
video/mp4 : mp4 동영상 파일
... -
사용 방법
<script> const http = require('http'); // req : 사용자 요청에 대한 정보(request) // res : 사용자에게 응답을 하기 위한 정보(response) const server = http.createServer((req, res) => { res.writeHead(200, {'content-type':'text/html'}); res.end(`<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>HTTP 모듈 테스트</title> </head> <body> <h2>HTTP 모듈 테스트</h2> <p>Node.js http 서버</p> </body> </html>`); }); server.listen(3000, () => { console.log('3000번 포트로 서버 실행 중...'); }); </script> 터미널에서 해당 디렉토리에 경로를 두고 $ node [js 파일명] 실행 후 listen 메소드의 로그가 정상적으로 표시된걸 확인 후 브라우저에 localhost:3000 로 접속하면 요청한 HTML 문서가 뜨는걸 확인할 수 있습니다.
3. express 모듈
http 모듈만 사용해서 웹 서버를 구성하면 직접 많은 기능을 따로 개발해야하는 불편한 점이 있습니다.
때문에 간단한 코드로 웹 서버의 기능을 대부분 구현할 수 있는 express 모듈을 사용하며 미들웨어와 라우터를 이용해서 편리하게 웹 서버를 구성할 수 있습니다.
- express 모듈 설치
$ npm install express
-
express 메소드(Method)
use() : 미들웨어를 등록.
res.redirect() : 웹 페이지의 경로를 강제로 이동.
req.query.키값 : 클라이언트에서 GET 방식으로 전송한 요청 파라미터를 확인.
req.body.키값 : 클라이언트에서 POST 방식으로 전송한 요청 파라미터를 확인. (단, POST 방식을 통한 요청 파라미터를 확인하려면 body-parser와 같은 모듈을 사용해야 한다.)
-
사용 방법
<script> const express = require('express'); const app = express(); app.use((req, res) => { res.writeHead(200, {'content-type': 'text/html; charset=utf-8'}); res.end('<h2>익스프레스 서버에서 응답한 메세지입니다.</h2>'); }).listen(3000, () => { console.log('3000번 포트로 서버 실행중...'); }); </script>
Author And Source
이 문제에 관하여([NodeJS] Node.js 기초 모듈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@timcodejs/NodeJS-Node.js-기초-모듈저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)