환경 : NodeJS v0.8.6, Mac OSX Lion
# Express Module
다음 명령어를 통해 express 를 설치하자.
sudo npm install -g express
-g 로 설치하면 /usr/local/bin/ 에 설치 되고, -g 없이 설치하면 현재 폴더에 node_module 폴더에 다운이 된다.
설치가 되면 express 명령어를 통해 프로젝트 폴더를 만든다.
express [폴더명] ex) express test
그럼 다음과 같은 화면을 통해 test라는 폴더가 생긴다.
test 파일 내부 구조를 보면, 다음과 같다.
이 프로젝트가 일단 잘 돌아가는지 확인해보려면,
폴더안에서 다음 2가지 모듈을 설치한다.
npm install express
npm install jade
모듈설치가 끝나면,
node app.js
위 명령어를 통해 NodeJS를 실행하고 브라우져에서 http://localhost:3000 을 쳐본다.
그럼 다음과 같은 화면을 통해 localhost 접근을 할 수 있다는 것이 보여진다.
# localhost/index.html
여기서 localhost라는 주소를 만들고 싶다면?
1. Eclipse의 Dynamic Project와 Tomcat을 이용하여 localhost 만들기
2. NodeJS Express 를 이용하여 localhost 만들기
3. MAMP 를 이용하여 localhost 띄우기
추가적으로 여러가지 방법이 있겠지만, 제가 활용하던 방법은 위 3가지가 있다.
하지만 필자는 Eclipse가 너무 느려서 하기싫고, MAMP는 프로그램을 또 설치해야한다.
따라서 가볍고 쉬운 Express를 주로 이용하게 되는데 위쪽에서는 localhost:3000 이었다. 이것을 바꾸는 방법은?
위에서 프로젝트를 생성하고 난 후 app.js 파일을 확인하자.
위에서 볼 수 있듯이 3000 포트를 사용한다.
간단하게 필자가 변형해 보았는데, 2가지를 필요로 만들었다.
1. 포트는 3000번이 아닌 80번을 사용한다.
2. public 안에 index.html을 사용한다.
# Example #
var express = require('express')
, routes = require('./routes')
, http = require('http')
, fs = require('fs')
, path = require('path');
var app = express();
app.configure(function(){
app.set('port', process.env.PORT || 80);
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('development', function(){
app.use(express.errorHandler());
});
app.get('/', routes.index);
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
이것을 이용하여 활용 할때에는 이전에 있던 public 폴더를 지운다.
그리고 심볼릭 링크를 이용하여 연결시킨다.
# 심볼링 링크 거는 방법
ln -s [실제경로] [가상경로] ex) ln -s ../testfolder/ public
심볼릭 링크의 장점은 가상으로 경로를 연결시키므로 실제경로에 있는 파일들이 가상경로 하위에도 보여지게 된다. 가상경로 안에서 수정을 하면 실제경로에 있는 파일들이 수정이 되고, 심볼릭링크를 삭제하면 가상폴더만 삭제될뿐 실제경로에는 아무런 피해가 없다.
위와 같이 public 폴더 아이콘에 보면 화살표 표시가 나면서 심볼릭 링크를 볼 수 있다.
이제 app.js 를 실행해야 하는데, 여기서 주의할 점은 맥에서 일반사용자는 80번포트를 사용할 수 없기때문에 sudo 명령어를 추가하여 root 권한을 가져야한다.
sudo node app.js
그럼 다음과 같은 화면을 볼 수 있다. public 내부에 있는 파일은 Sencha SDK를 통해 만든 기본프로젝트이다.
출처 : http://devdoc.tistory.com/3
'NodeJS' 카테고리의 다른 글
NodeJS 코딩환경 구축(NTVS) (0) | 2015.08.11 |
---|---|
Node.JS 한글 깨지는 문제 (0) | 2015.07.31 |
node.js 에서 express 사용하기 (0) | 2015.07.22 |
Node.js + MySQL 데이터베이스를 통한 게시판 구현 (0) | 2015.07.22 |