-이벤트 연결

process.on(eventName, eventHandler)

process.on(‘exit’, function(){/*someting*/});

process.on(‘uncaughtException’,function(error){ /*something*/}); - 예외처리시 사용(실제 사용 X)

이벤트를 1번만 연결하고싶을 때, process.once(eventName, eventHandler) 사용

 

이벤트 연결갯수 제한

Node.js는 한 이벤트에 10개까지 이벤트 핸들러를 허용

setMaxListners(limit)

이벤트 핸들러 연결개수 조절


- 이벤트 제거

removeListner(eventName, handler)

특정 이벤트의 이벤트 핸들러를 제거

removeAllListner([eventName])

모든 이벤트 핸들러 제거


- 이벤트 실행

emit(event,[arg1],[arg2],[...])

이벤트 실행


- 커스텀 이벤트 생성

    Node.js에서 이벤트를 연결 할 수 있는 모든 객체는 EventEmitter 객체의 상속을 받는다.(process 포함)

 EventEmitter 객체는 process 객체 안에 있는 생성자 함수로 생성 할 수 있다.

addEventListner(eventName, eventHandler)

이벤트 연결

on(eventName, eventHandler)

이벤트 연결

setMaxListners(limit)

이벤트 연결 개수 조절

removeListner(eventName, handler)

이벤트 핸들러 제거

removeAllListner([eventName])

모든 이벤트 핸들러 제거

once(eventName, eventHandler)

이벤트를 한번만 연결



ex)

var custom = new process.EventEmitter();

custom.on(‘event’, function(){/*something*/})

custom.emit(‘event’);


'Programming > Node.JS' 카테고리의 다른 글

Express.js 설치하기  (0) 2016.09.05
http모듈  (0) 2016.09.03
기본 내장 모듈  (0) 2016.09.03
전역 객체에 대하여  (0) 2016.09.03
node.js 특징  (0) 2016.09.03

기본 내장 모듈중에 주로 많이 쓰이는 모듈을 알아보자


url모듈

var url = require(‘url’);

parse(String)

URL문자열을 URL객체로 변환해 리턴

parse(String, true)

두 번째 매개변수에 true하면 query를 사용

format(Obj)

URL객체를 URL문자열로 변환해 리턴

resolve(from, to)

매개 변수를 조합하여 완전한 URL 문자열 생성

 

util 모듈

var util = requird(‘util’);

format

매개변수로 입력한 문자열을 조합해 리턴

 

File System 모듈

var fs = require(‘fs);

readFile(file, encoding, callback)

파일을 비동기로 읽음

readFileSync(file, encoding)

파일을 동기로 읽음

writeFile(file, data, encoding, callback)

파일을 비동기로 씀

writeFileSync(file, data, encoding)

파일을 동기로 씀

 

encoding 방식 : utf8

파일을 읽고 쓸때는 반드시 예외처리를 할 것

동기방식

try{}catch(e){} 사용

비동기 방식

if(err){}else{}사용


'Programming > Node.JS' 카테고리의 다른 글

http모듈  (0) 2016.09.03
Event개념 이해  (0) 2016.09.03
전역 객체에 대하여  (0) 2016.09.03
node.js 특징  (0) 2016.09.03
Node.js 에서 JSON 사용하기  (0) 2016.08.27

전역객체

 

전역변수

__filename

현재 실행중인 코드의 파일경로

__dirname

현재 실행중인 코드의 디렉토리 경로

 

전역 객체

console

콘솔화면과 관련된 기능을 다루는 객체

log()

출력

time(label)

시간측정 시작

timeEnd(label)

시간측정 종료

사용 가능한 서식문자

%d : 숫자, %s: 문자열, %j : JSON

exports

모듈과 관련된 기능을 다루는 객체

(모듈을 사용하여 기능을 확장함)

모듈을 생성할 때는 exports 객체

모듈을 추출할 때는 require 객체

process

프로그램과 관련된 기능을 다루는 객체

argv

실행 매개변수

env

컴퓨터 환경정보

version

Node.js의 버전

arch

프로세서의 아키텍처

platform

플랫폼


exit()

프로그램종료


'Programming > Node.JS' 카테고리의 다른 글

Event개념 이해  (0) 2016.09.03
기본 내장 모듈  (0) 2016.09.03
node.js 특징  (0) 2016.09.03
Node.js 에서 JSON 사용하기  (0) 2016.08.27
Nodejs로 serial통신하기  (0) 2016.08.25


Nods.js2009년 라이언달이 개발한 서버 개발환경

크롬 브라우저에서 사용하는 V8 자바스크립트 엔진을 사용


이벤트 기반 비동기 방식

(CallBack)

- 한 사람이 커피숍에서 진동벨을 받고 다른일을하는 형식

- 사용자가 많아져도 시스템 자원을 많이 먹지 않음

이벤트를 받으면 동작하는 방식

스레드 기반 동기방식

- 한 스레드가  한번에 여러 프로세스를 처리하는 방식

- 사용자가 많아지면 부하가 많이 걸림


장점 : 이벤트 기반 비동기식 방식으로 속도가 빠르며, 부하가 크게 걸리지않음, 대규모 작업에 큰 두각을 나타냄


단점 : 프로그램진행에 문제가 발생하는 순간, 프로그램 전체가 영향을 받음, 대용량 파일 처리시 속도가 매우 느려짐


'Programming > Node.JS' 카테고리의 다른 글

Event개념 이해  (0) 2016.09.03
기본 내장 모듈  (0) 2016.09.03
전역 객체에 대하여  (0) 2016.09.03
Node.js 에서 JSON 사용하기  (0) 2016.08.27
Nodejs로 serial통신하기  (0) 2016.08.25

Node.js에서는 데이터 형식으로 JSON을 사용한다. 자바스크립트 객체를 직렬화하여 클라이언트에서 서버로 전달하거나 프로세스에서 프로세스로 전달, 스트림에서 스트림으로 전달, 데이터베이스에 저장시에도 사용된다. 자바스크립트 객체를 직렬화하는 일에 XML보다 JSON이 사용되는 이유는 다음과 같다.

– JSON이 XML보다 객체를 직렬화거나 역직렬화 할때 필요한 문자수가 적다.
– JSON을 직렬화하거나 역직렬화하는 것이 XML로 똑같은 작업을 하는것보다 빠른다.

 

[1] JSON을 자바스크립트 객체로 변환

JSON.parse(string)을 사용하여 자바스크립트 객체로 변환한다.

var accountStr = ‘{ “name”:”John”, “members”:[“Sam”, “Smith”], “number”:12345, “location”:”Seoul”}’;
var accountObj = JSON.parse(accountStr);
console.log(accountObj.name);
console.log(accountObj.members);

 

[2] 자바스크립트 객체를 JSON으로 변환

Node.js는 자바스크립트 객체를 JSON포맷으로 변환할 수 있다. 이를 이용해 문자열 형태 자료를 파일이나 데이터 베이스에 저장하거나 HTTP연결을 사용해 전송, 스트림이나 버퍼에 쓰기 등을 할수 있다. JSON.stringify(object)함수를 사용해 자바스크립트 객체를 파싱해 JSON 문자열을 만들 수 있다.

var accountObj = {
“name”:”John”,
“members”:[“Sam”, “Smith”],
“number”:12345,
“location”:”Seoul”
}
var accountStr = JSON.stringify(accountObj);
console.log(accountStr);


출처 : http://aljjabaegi.tistory.com/40

'Programming > Node.JS' 카테고리의 다른 글

Event개념 이해  (0) 2016.09.03
기본 내장 모듈  (0) 2016.09.03
전역 객체에 대하여  (0) 2016.09.03
node.js 특징  (0) 2016.09.03
Nodejs로 serial통신하기  (0) 2016.08.25

(2016년 여름방학 프로젝트 하는 중에 가장 애를 많이 썩인 부분이다....)

출처 : https://www.npmjs.com/package/serialport


명령어 : npm install serialport(@version) --save


serialport를 다운받는 가장 좋은 방법은 https://github.com/nodesource/distributions#installation-instructions 를 참고하는 것이다.


라즈베리파이에서 apt-get으로 다운 받은 node.js 는 0.10.x 버전이기 때문에 serialport@1.7.4를 다운 받아야한다.


그리고 시리얼 통신시 중요한 parser이다.

아두이노에서 서버로 여러개의 센서 데이터 값을 받아올때 값이 같이안오고 따로전송이 된다.

이를 막기위한 방법으로 parser를 사용하는 방법이 있더라.

1
2
3
4
5
var SerialPort = require('serialport');
 
var port = new SerialPort('/dev/tty-usbserial1', {
  parser: SerialPort.parsers.readline('\n')
});
cs


서버에서 클라이언크단으로 데이터를 전송하는 법은 이런식이다.

1
2
3
4
5
function writeAndDrain (data, callback) {
  sp.write(data, function () {
    sp.drain(callback);
  });
}
cs


'Programming > Node.JS' 카테고리의 다른 글

Event개념 이해  (0) 2016.09.03
기본 내장 모듈  (0) 2016.09.03
전역 객체에 대하여  (0) 2016.09.03
node.js 특징  (0) 2016.09.03
Node.js 에서 JSON 사용하기  (0) 2016.08.27

+ Recent posts