'Node.js/3. 기본객체'에 해당하는 글 3건

이 포스팅의 예제는 node.js 0.10.25 입니다.


먼저 fs는 file system의 약자입니다.  api 문서 링크 : http://nodejs.org/api/fs.html

상당히 많은 함수를 포함하고 있는 파일시스테 모듈이지만 모듈의 반절은 권한관련입니다

(node.js 의 개발자가 지독한 유닉스 개발자로 알려져 있습니다. 디버깅모듈이 콘솔로 된것만으로도 알수 있겠지요?)

많이 쓰는 모듈 몇가지 예제입니다.


1. 파일 확인

var fs = require('fs');

fs.exists('test1.txt', function (exists) {
  console.log(exists ? "it's there" : "no exists!");
});

fs.exists() 파일이 존재 하는지 확인합니다. 예제의 경우 test1.txt 파일이 존재 하는지 확인합니다. 



2. 파일 생성

var fs = require('fs');

var file = 'test1.txt';
fs.open(file,'w',function(err,fd){
	if (err) throw err;
 	console.log('file open complete');
});

fs.open() 해당 파일을 엽니다. 옵션 'w' 의 경우 해당 파일이 없다면 생성합니다. 

해당 옵션에 따라 파일의 접근이 달라집니다. 


  파일을 읽기로 열며 해당 파일이 없다면 에러발생

 r+

  읽기/쓰기 상태로 파일을 열며 파일이 없다면 에러 발생 

 w

  쓰기로 파일을 열며 존재 하지 않으면 생성. 파일이 존재하면 내용을 지우고 처음부터 씀.

 w+

  읽기/쓰기로 열며  존재 하지 않으면 생성. 파일이 존재하면 내용을 지우고 처음부터 씀.

 a

 추가 쓰기로 열며 파일이 존재하지 않으면 만듬. 

 a+

 추가 읽기/쓰기로 열며 파일이 존재 하지 않으면 만듬. 



3. 파일 이름 변경

var fs = require('fs');

fs.rename('test1.txt', 'text2.txt', function (err) {
  if (err) throw err;
  console.log('renamed complete');
});

fs.rename() 해당파일의 이름을 변경합니다. 예제는 test1.txt -> test2.txt  로 변경합니다. 

해당 파일이 없거나 권한이 없다면 에러가 발생합니다. 또한 변경하려는 이름의 같은 이름의 파일이 존재하면 에러가 발생합니다.


4. 파일 삭제

var fs = require('fs');
fs.unlink('text2.txt', function (err) {
  if (err) throw err;
  console.log('successfully deleted text2.txt');
});

fs.unlink() 파일을 삭제 합니다. 예제의 경우 test2.txt 파일을 삭제 합니다. 

해당 파이 없거나 권한이 없다면 에러가 발생합니다. 



5.파일 읽기

var fs = require('fs');

fs.readFile('test1.txt', 'utf8', function(err, data) {
  console.log(data);
});

fs.readFile() 해당 파일을 읽습니다. 예제의 경우 test1.txt 파일을 읽고 콘솔로 출력합니다.



6. 파일 쓰기

var fs = require('fs');

var data = 'file system example!!';
fs.writeFile('text1.txt', data, 'utf8', function(error){
	console.log('write end')
});

fs.writeFile() 해당파일에 내용을 씁니다. 예제의 경우 test1.txt파일에 data의 내용을 씁니다. 

만일 파일이 존재 하지 않으면 파일을 생성후 내용을 씁니다. 파일의 내용을 이어서 쓰진 않습니다.


7.파일 이어서 쓰기

var fs = require('fs');

fs.appendFile('test1.txt', 'data to append', function (err) {
  if (err) throw err;
  console.log('The "data to append" was appended to file!');
});

fs.appendFile() 해당 파일에 내용을 이어서 씁니다. 예제의 경우 test1.txt 에 'data to append' 를 이어서 씁니다. 파일이 없을경우 새로 생성하여 씁니다. 



대부분의 함수가 파일이 없을 경우 에러를 발생시키므로 먼저 파일을 있는지 확인하거나 파일을 open()를 통하여 쓰기 모드로 연상태에서 해당 함수들을 실행 시킵니다. 다음은 파일 읽기를 할시 파일이 업다면 생성하고 끝내는 예제 입니다. 

var fs = require('fs');
var path = 'test1.txt';
fs.open(path,'a+',function(err,fd){
	if(err) throw err;
	if(fd == '9'){
		console.log('file create.');
	}else{
		fs.readFile(path, 'utf8', function(err, data) {
		  console.log(data);
		});
	}
});



저작자 표시
신고

'Node.js > 3. 기본객체' 카테고리의 다른 글

3-3 node.js fs (파일시스템)  (2) 2014.02.26
3-2 node.js 기본 모듈 리스트  (0) 2014.02.25
3-1 node.js 전역 객체  (0) 2014.02.24

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글  2개가 달렸습니다.
  1. 댓글이 잘 안써지네요 금지된 혹은 귀하는 차단 등등..
  2. 댓글 적으려고 이 페이지에서 한시간은 보낸듯 합니다. ㅠㅠ
    검색하다가 우연히 들어왔다가 반가워서 댓글을 남기려는데..
    댓글이 작성이 안되어서 뭔가 오기가 생기는 ㅎㅎㅎ
secret

node.js 설치시 기본으로 제공되는 모듈리스트 입니다.

모듈 이름 클릭시 새창으로 API 도큐먼트가 열립니다. 

 assert

 단정문 모듈

 Buffers

 바이너리 데이터의 옥텟 스트림(8비트 데이터) 모듈

 Child Processes

 자식 프로세스 생성및  관리 모듈

 Cluster

 멀티코어처리 모듈

 Console

 콘솔 모듈

 Crypto

 암호화 모듈

 Debugger

 디버깅 모듈

 DNS

 도메인 네임 서버 모듈

 Domain

 도네임 모듈

 Events

 이벤트 관련 모듈

 File System 

 파일시스템(읽고/쓰고) 모듈

 Globals

 글로벌 객체 모듈 

 HTTP

 HTTP 서버와 클라이언트 기능 모듈

 HTTPS

 HTTPS 서버와 클라이언트 기능 모듈

 Net

 비동기 네트워크 통신 기능 모듈

 OS

 운영체제 정보를 제공 모듈

 Path

 파일의 경로 제공 모듈

 Process

 실행된 프로세서의 대한 정보 제공

 Punycode

 non-ASCII 문자 의 인코딩 함수 제공

 Query Strings

 URL의 쿼리 문자열을 다루는 함수를 제공

 Readline

 스트림에서 라인 단위로 읽는 기능을 제공

 Stream

 스트림을 다루기 위한 추상 인터페이스

 String Decoder

 버퍼를 스트링으로 변환 함수 

 TLS/SSL 

 공개키/개인키 기반인 TLS/SSL 에 대한 함수를 제공

 TTY

 터미널이나 콘솔 관련 기능을 제공

 UDP/Datagram

 UDP의 소켓(Datagram Socket) 통신 기능을 제공

 URL

 URL을 다루는 함수를 제공

 Utilities

 출력 및 디버깅용 모듈

 VM

 자바스크립트를 실행하는 기능을 제공

 ZLIB

 압축 함수를 제공

   

저작자 표시
신고

'Node.js > 3. 기본객체' 카테고리의 다른 글

3-3 node.js fs (파일시스템)  (2) 2014.02.26
3-2 node.js 기본 모듈 리스트  (0) 2014.02.25
3-1 node.js 전역 객체  (0) 2014.02.24

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret

node.js에서 제공하는 객체들로 선언 없이 어디서 든지 사용할수 있는 객체들입니다. 


1.  global 전역객체 지정하기 

global.someting = 1;
console.log("someting : " + someting);

전역객체 선언 입니다. global.객체이름 을 사용하여 node 실행시 어디서든지 접근 가능합니다. 



2. console 객체

console.log("print");
console.time('100-elements');
for (var i = 0; i < 10000000; i++) {
}
console.timeEnd('100-elements');


Node.js 콘솔 관련된 기능을 다루는 객체 입니다.

log() - 출력을 한다.

time(label) - 시간 측정을 시작.

timeEnd(label) - 시간 측정을 종료 후 출력.



3. process 객체
process.argv.forEach(function(val, index, array) {
  console.log(index + ': ' + val);
});

console.log("process.memoryUsage() : " + process.memoryUsage());
console.log("process.uptime() : " + process.uptime());

process.on('exit', function(code) {
    console.log('About to exit with code:', code);
});

process.exit([exitCode = "끝나요~"]);


프로그램과 관련된 정보를 나타내는 객체입니다. 


argv       - 시작시 넣은 파라미터 객체. 0 은 node위치 1 은 실행 파일 위치 로 고정.
                 위의 파일 시작 파라미터는 $node global.js 1 2 e 사 {title:test} 이었습니다. 
memoryusage() - 메모리 사용 정보 객체를 리턴 
                            (rss는 총 사용할수 있는 용량, heapTotal/heapUsed 힙토탈/힙현재사용량)
uptime() - 프로그램이 실행된 총 시간
'exit'      - 프로그램 종료시 실행. (예제에선 code파라미터를 받아서 print. code 값은 아래의 exitCode 값) 
exit([exitCode = 0]) - 프로그램을 종료


4. exports 

global.js 소스


var module = require('./module.js');
console.log(module.plusInt(1,2));


 module.js 소스


exports.plusInt = function (x, y){
return x+y;
};


require()로 해당 파일을 요구 하여 가져옵니다. 객체 module 를 통하여 plusInt()를 실행시킬수 있습니다. 

또한 이제 부터 나오는 여러 모듈들은 require()함수를 통하여 가져와 쓰게 됩니다. 


더 많은 API를 보실수 있습니다.  :  http://www.nodejs.org/api/globals.html



저작자 표시
신고

'Node.js > 3. 기본객체' 카테고리의 다른 글

3-3 node.js fs (파일시스템)  (2) 2014.02.26
3-2 node.js 기본 모듈 리스트  (0) 2014.02.25
3-1 node.js 전역 객체  (0) 2014.02.24

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret