Create TOC

레이블이 nodejs인 게시물을 표시합니다. 모든 게시물 표시
레이블이 nodejs인 게시물을 표시합니다. 모든 게시물 표시

2016년 3월 2일

raspbian/docker/node.js

docker 설치

raspbian에 포함된 docker.io 패키지를 설치하고 이미지를 받아보려고 하면 "Could not reach any registry endpoint" 오류가 나면서 이미지를 받아올 수 없다. docker.io가 버전이 너무 낮아서 발생한 문제이다.

docker.io 패키지 대신 http://blog.hypriot.com/downloads/ 에서 deb 파일을 받아서 설치한다.

$ sudo apt-get purge docker.io
$ wget http://downloads.hypriot.com/docker-hypriot_1.10.1-1_armhf.deb
$ sudo dpkg -i docker-hypriot_1.10.1-1_armhf.deb

참고로 docker.io 패키지를 삭제할 때 sudo apt-get purge docker.io으로 완전 삭제하지 않으면 충돌이 발생할 수 있다.

계정 설정

docker 설치 후 docker를 사용할 계정을 docker그룹에 추가한다.

$ sudo adduser 사용하는id docker

그룹 추가 후 다시 로그인 한다.

node.js

$ docker pull hypriot/rpi-node

2013년 7월 1일

nodejs/sample

간단한 node.js sample.

var url = require('url');
var domain = require('domain');
var fs = require('fs');

require('http').createServer(function(req, res) {
	var u = url.parse(req.url, true);
	if (u.pathname == '/error') {
		if (u.search == '') {
			res.writeHead(200);
			res.write('<html><title>error</title></head><body>error</body></html>');
		}
		else {
			res.writeHead(u.query.e);
			res.write('<html><title>error</title></head><body>' + u.query.e + '</body></html>');
		}
		res.end();
	}
	else {
		if (u.pathname == '/') {
			u.pathname = '/index.html';
		}
		var d = domain.create();
		d.run(function() {
			fs.readFile(__dirname + '/public_html'+ u.pathname, d.intercept(function(data) {
				res.writeHead(200);
				res.write(data, 'utf8');
				res.end();
			}));
		});

		d.on('error', function(err) {
			console.log(err);
			var errpage = '/error';

			if (err.errno == 34) {
				errpage = errpage + '?e=404';
			}
			res.writeHead(302, {'Location': errpage});
			res.end();
		});
	}
}).listen(1234);