모듈은 프로그래밍의 도구라고 생각하면 된다.
외부 모듈을 가져오는 경우, 그 모듈의 메서드를 사용할 수 있으므로
필요한 모듈을 활용하는 방법을 알아두도록 하자.
모듈을 불러와 사용하는 법은 다음과 같다
⇒ require로 불러와 변수에 담기 + 변수로 모듈에 접근
Ex. const http = require('http'); http.createServer();
const http = require('http')
const hostname = '127.0.0.1';
const port = 1337;
http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World\n');
}).listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
// var app = http.createServer((req,res) => {});
// app.listen(port,hostname);
Node js는 다양한 모듈과 더 다양한 메서드를 제공한다.
이러한 메서드 사용 방법은 nodejs 홈페이지 > 문서로 가서 확인할 수 있다. (crtl+f)
앞서 배운 require으로 가져올 수 있는 모듈은 js가 기본적으로 제공하는 모듈이다.
but, 외부 모듈을 사용해야 한다면?
이때 사용할 수 있는게 npm이다.
npm은 node계의 '앱스토어'로 이해할 수 있다.
npm으로 node로 만들어진 소프트웨어들을 사용할 수 있다.
(이전 수업에서의 pm2도 npm의 일종)
cf. npm은 Node.js를 다운로드할때 같이 다운되므로 별도의 설치없이 사용할 수 있다.
NPM 주소 : https://www.npmjs.com/
npm init 명령어가 실행되면 package.json 파일이 생성된다. (이를 패키지화라고 한다.)
package.json 파일은 프로젝트 정보와 의존성(dependencies)을 관리하는 문서이다.
때문에 npm init을 실행하면 아래와 같은 옵션에 답해야 한다. (당황하지 말자)
Ex. npm의 uglify 모듈
다운로드 명령어 : npm install uglify
uglifyjs pretty.js
: pretty.js 의 공백을 없애줌
function hello(name){console.log("Hi,"+name)}var name="나영서";hello(name);
uglifyjs pretty.js -m
: pretty.js의 공백을 없애줌 + 이름을 바꿔도 상관 없는걸 한글자로 바꿈
function hello(l){console.log("Hi,"+I)}var name="나영서";hello(name);
몇몇 메서드에서는 인자로 call back 함수를 받을 수 있다.
call back 함수는 메서드의 과정이 끝난다음 실행되는 함수로
함수의 기본 기능을 확장할 수 있다는 장점이 있다.
코드의 동기, 비동기 상관 없이 메서드의 과정이 끝나야만 실행된다.
Ex. fs.createServer(function(res,req){ }) ⇒ 서버가 만들어진 다음 function이 실행된다.