* 전역 모듈 - 서버 실행 모듈
- supervisor : js 파일의 변경을 자동으로 인식해서 실행중인 서비스를 종료 후 다시 실행한다.
- forever : exception으로 서비스가 중단되는 것을 다시 실행한다.
- express : http 모듈을 쉽게 사용하도록 지원하는 모듈
1. supervisor 모듈
js 파일의 변경을 자동으로 인식해서 실행중인 서비스를 종료 후 다시 실행한다.
- 모듈 설치 방법
baesunghan:~/Documents/workspace/nodejs$sudo npm install -g supervisor
Password: /usr/local/bin/node-supervisor -> /usr/local/lib/node_modules/supervisor/lib/cli-wrapper.js /usr/local/bin/supervisor -> /usr/local/lib/node_modules/supervisor/lib/cli-wrapper.js supervisor@0.6.0 /usr/local/lib/node_modules/supervisor
baesunghan:~/Documents/workspace/nodejs$
|
- 사용 방법
baesunghan:~/Documents/workspace/nodejs$supervisor test.supervisor.js
Running node-supervisor with program 'test.supervisor.js' --watch '.' --extensions 'node,js' --exec 'node' Starting child process with 'node test.supervisor.js' Watching directory '/Users/baesunghan/Documents/workspace/nodejs' for changes.
Server running at http://127.0.0.1:52273/
==> test.supervisor.js 가 변경된 것을 감지하여 자동으로 재 시작한다.
crashing child
Starting child process with 'node test.supervisor.js' Server running at http://127.0.0.1:52273/ |
* 주의사항
서비스의 오류로 인해 서비스가 다운되도 계속 다시 수행하므로 주의해야 한다.
2. forever 모듈
Exception으로 서비스가 중지되어도 다시 시작하도록 하는 예외처리 모듈
- 모듈 설치
baesunghan:~/Documents/workspace/nodejs/exam_mysql$sudo npm instal -g forever
Password:
/usr/local/bin/forever -> /usr/local/lib/node_modules/forever/bin/forever
|
- 사용 방법
baesunghan:~/Documents/workspace/nodejs/exam_mysql$forever stat app.js
baesunghan:~/Documents/workspace/nodejs/exam_mysql$forever listinfo: No forever processes running
baesunghan:~/Documents/workspace/nodejs/exam_mysql$
baesunghan:~/Documents/workspace/nodejs/exam_mysql$forever stop 0
|
3. Express 모듈
http 모듈을 쉽게 사용하도록 지원하는 모듈
- Express 모듈의 미들웨어
- logger : 로그 정보 출력
- csrf : CSRF 보안 수행
- basicAuth : 기본 인증 수행
- bodyParser : POST 요청 매개변수 추출
- cookieParser : Cookie 분해
- session : 세션 처리
- methodOverride : 다양한 요청 방식 수행
- responseTime : 응답시간 계산
- router : 페이지 라우트 수행
- staticCache : static 미들웨어를 위한 메모리 캐시
- static : 특정 폴더를 서버의 루트 폴더로 올려서 path 지정이 간편하게 함.
- directory : 서버의 디렉토리 구조를 보여줌
- vhost : 가상 호스트 설정
- favicon : 파비콘 생성
- limit : POST 요청 데이터 제한
- errorHandler : 예외처리 수행
위와 같이 다양한 미들웨어가 있지만, 많이 사용하게 되는 것은 router, static, bodyParser 이 있다.
<사용 예제>
- app.js
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var routes = require('./routes/index');
var users = require('./routes/users');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
// uncomment after placing your favicon in /public
//app.use(favicon(__dirname + '/public/favicon.ico'));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', routes);
app.use('/users', users);
app.use('/join', join);
|
- index.js
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
module.exports = router;
|
이 글은 Evernote에서 작성되었습니다. Evernote는 하나의 업무 공간입니다. Evernote를 다운로드하세요. |
댓글 없음:
댓글 쓰기