본문 바로가기

Raspberry Pi/Node.js

Raspberry Pi Node.js Setup

라즈베리파이(Raspberry Pi)에 Node.js 설치하기


Node.js 는 자바스크립트의 문법을 빌어 네트워크 프로그램의 IO 프레임워크로써 사용할 수 있는 특징을 가지며 HTTP 요청을 처리하고 응답을 전송할 수도 있다. 그러므로 웹서버에서 요청을 처리하는 프로그램을 작성할 수도 있고, IO 프레임워크 답게 호스트 컴퓨터의 하드웨어 입출력 핀(GPIO)에 신호를 입출력할 수 있는 기능도 갖추고 있다.


여기서는 우선 라즈베리파이에 Node.js 를 설치하는 절차에 대해서 알아보고자 한다

인터넷를 검색하여 다음과 같이 간단한 방법으로 Node.js 를 설치하는데 성공했다.

이미 Nodejs 가 설치된 경우에는 설치가 안될 수도 있으므로 sudo apt-get purge nodejs 명령으로 삭제한 후에 다시 설치하면 된다


pi@raspberrypi /usr/local/bin $ sudo wget http://node-arm.herokuapp.com/node_latest_armhf.deb

--2014-09-05 15:25:59--  http://node-arm.herokuapp.com/node_latest_armhf.deb

Resolving node-arm.herokuapp.com (node-arm.herokuapp.com)... 54.243.213.130

Connecting to node-arm.herokuapp.com (node-arm.herokuapp.com)|54.243.213.130|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 5627286 (5.4M) [application/x-debian-package]

Saving to: `node_latest_armhf.deb'


100%[======================================>] 5,627,286   1.15M/s   in 4.9s


2014-09-05 15:26:05 (1.10 MB/s) - `node_latest_armhf.deb' saved [5627286/5627286]


pi@raspberrypi /usr/local/bin $ sudo dpkg -i node_latest_armhf.deb

Selecting previously unselected package node.

(데이터베이스 읽는중 ...현재 69105개의 파일과 디렉터리가 설치되어 있습니다.)

node 패키지를 푸는 중입니다 (node_latest_armhf.deb에서) ...

node (0.10.31-1) 설정하는 중입니다 ...

man-db에 대한 트리거를 처리하는 중입니다 ...

pi@raspberrypi /usr/local/bin $ node -v

v4.2.1

pi@raspberrypi /usr/local/bin $ npm -v

2.14.7

pi@raspberrypi /usr/local/bin $ npm install  -g node-gyp


위의 내용 중 마지막 부분에 있는 npm -v 는 Node Pacakge Management 라고 한다
또, node-gyp 는 Node.js에서 작성된 코드를 네이티브 모듈로 생성해주는 Native Build Tool 이라고 한다.


설치된 Node.js 의 작동 테스트

라즈베리파이에서 에디터를 열고 다음과 같이 코드를 입력하고 /home/pi/www 폴더 안에 저장한다

pi@raspberrypi ~ $ sudo vi hello.js

var http = require(‘http’);

http.createServer(
  function (req, res) {
    res.writeHead(200, {‘Content-Type’: ‘text/plain’});
    res.write(‘Hello World\n’);
    res.end();
  }
).listen(8081);

console.log(‘Server running at http://localhost:8081/’);

위와 같이 코드를 작성하여 저장하고 chmod 755 hello.js 으로 접근권한을 적절히 설정한다
위의 코드를 아래의 명령으로 실행하면 쉘이 멈추고 아무런 메시지도 없지만 hello.js는 지정된 포트에서 클라이언트의 접속을 대기하게 된다
$ node hello.js

다른 컴퓨터에서 웹브라우저를 열고 주소창에 다음과 같이 접속 URL을 입력한다

http://192.168.40.10:8081/

사용된 IP 주소는 라즈베리파이에 현재 할당된 IP 주소이다


Node.js 의 작동을 테스트한 결과화면