Odds and Ends
2장 Node.js 강의 정리 - 간단한 Node.js 본문
2장에서는 1장에 이어 Node에 대한 간단한 내용을 배운다. - 코드 위주
간단한 실습 - ch02_test1.js
1. 객체 생성과 출력
2. 간단한 반복문으로 실행시간 체크
3. 파일 이름과 경로 출력
ch02_test1.js 파일
var person = {
name:'소녀시대',
age:20
};
console.log('자바스크립트 객체입니다. %j', person);
console.dir(person);
console.time('duration_time');
var result = 0;
for(var i=0; i<10000; i++){
result += i;
}
console.timeEnd('duration_time');
console.log('파일 이름 : %s', __filename);
console.log('패스 : %s', __dirname);
간단한 실습 - ch02_test2.js
1. process.argv를 이용하여 파라미터 수를 알아본다.
2. forEach구문을 이용하고, 배열 원소 갯수만큼 실행하여 원소를 출력한다.
ch02_test2.js 파일
console.log('argv 속성의 파라미터 수 : ' + process.argv.length);
// process.argv는 객체안에 있는 모든 속성을 출력 가능, process는 대표적인 전역 객체
console.dir(process.argv); // 배열임을, 객체임을 확인
process.argv.forEach(function(item, index){
console.log(index + ' : ' + item);
});
* process란?
: 대표적인 전역 객체 중 하나
* argv란?
: argument Vector의 약자. 가변적인 갯수의 문자열을 의미한다.
[**노드에서 모듈 사용하기]
- 기능을 각각의 파일을 분리 : 파일을 읽을 때 필요한 코드를 기능별로 각각의 파일에 나누어 넣는다.
동작 순서
1. 메인파일에서 파일이 있는 지 확인
2. 파일 읽기
3. 화면에 내용 보여주기
* 모듈이란? 별도의 파일로 분리된 독립 기능, 라이브러리처럼 사용 가능
- 다른 파일에서 모듈을 불러와 사용 가능, exports 전역 객체 사용
- 함수를 변수에 할당할 수 있게 한다.
[모듈 파일]
exports.함수이름 = 함수 정의;
: exports 속성, 즉 변수에 함수가 들어간다.
[메인 파일]
var module1 = require('module1');
: require으로 모듈을 요청하여 변수에 넣는다. 이후 module1.함수이름(); 으로 모듈 내의 함수 사용 가능
실습 1 - 소괄호로 객체 생성하고 직접 함수 생성 (모듈 사용 X)
var calc = {};
calc.add = function(a, b) {
return a + b;
};
console.log('모듈로 분리하기 전 - calc.add : ' + calc.add(10, 10));
실습 2 - 모듈을 불러와서 함수 실행 (모듈 사용 O)
모듈 파일 - calc.js
exports.add = function(a, b) {
return a + b;
};
메인 파일 - ch02_test05.js
var calc = require('./calc'); // 직접만든 모듈은 상대경로로 넣어줘야한다. (./이용)
console.log('모듈로 분리한 후 - calc.add : ' + calc.add(20, 20));
실습 3 - 모듈 사용, 실습 2와 조금 다름
모듈파일 - calc2.js
var calc = {};
calc.add = function(a, b) {
return a + b;
};
module.exports = calc; // calc 객체 할당
메인파일 - ch02_test6.js
// 메인파일
var calc2 = require('./calc2');
console.log('모듈로 분리한 후 - calc2.add : ' + calc2.add(30, 30));
[nconf]
nconf란?
: 시스템 환경변수에 접근할 수 있는 모듈, 외장모듈을 이용하기 위해 사용
외장모듈이란?
: 자신이 만든 모듈이 아닌 다른사람이 만든 모듈
nconf 설치
1. cmd창에 npm init 입력
2. 입력창이 나오는데, 이름 입력 후 다른 것은 엔터를 입력해 넘어가도 된다.
3. pakage.json 생성됨
4. npm install 입력해 설치 (보통 npm install 이름 으로 설치하는데, pakage.json에 입력이 되어있기때문에 괜찮다.)
nconf 이용한 간단 예제
// 메인파일
var calc2 = require('./calc2');
console.log('모듈로 분리한 후 - calc2.add : ' + calc2.add(30, 30));
var nconf = require('nconf'); // 제공되는 모듈 가져오는 것은 이름만 넣으면 가능
nconf.env();
var value = nconf.get('OS');
console.log('OS 환경변수의 값 : ' + value);
[내장 모듈 사용]
: 설명은 코드 주석 참조
ch02_test7.js 파일
// 내장 모듈 사용 코드
var os = require('os');
console.log('hostname : ' + os.hostname()); // 호스트 이름
console.log('memory : ' + os.freemem()); // 남은 메모리 양
ch02_test8.js 파일
var path = require('path'); // path라고하는 외장모듈에서 반환되는 객체가 pat변수에 할당된다.
var directories = ['users','Samsung','docs']; //배열 객체
var dirStr = directories.join(); // join() 사용 시 directories내의 정보가 문자열로 붙어 반환된다.
console.log('dir : ' + dirStr); // 콤마를 기준으로 붙어 반환된다.
var dirStr2 = directories.join(path.sep); //path.sep(역슬레쉬)으로 구분자 지정
console.log('dir2 : ' + dirStr2);
// path.join() 파일 경로 만들기 위해 사용 가능
var filepath = path.join('/Users/Samsung','notepad.exe'); //path에 join이 따로 또 존재.지정 경로 아래에 notepad.exe생성
console.log('filepath : ' + filepath);
// join외에 path가 제공하는 기능
var dirname = path.dirname(filepath);
console.log('dirname : ' + dirname); // 경로 출력
var basename = path.basename(filepath);
console.log('basename : '+basename); // 파일 이름 출력
var extname = path.extname(filepath);
console.log('extname : '+extname); // 확장자 출력
'Node.js 강의 정리' 카테고리의 다른 글
5장 Node.js 강의 정리 - 웹 서버 만들기 (0) | 2021.07.10 |
---|---|
4장 Node.js 강의 정리 - Node의 기본 기능 (0) | 2021.07.02 |
3장 Node.js 강의 정리 - Node.js의 자바스크립트 (0) | 2021.07.01 |
1장 Node.js 강의 정리 - Node.js 설치와 예제 (0) | 2021.06.29 |