Node.js 작업할 때 Express.js를 많이 썼었는데 이번엔 가벼운 프레임웍을 쓰고 싶어서 Hapi.js를 사용했습니다.

SSL 설정


1
2
3
4
5
6
7
8
9
10
11
12
13
'use strict';

const Hapi = require('hapi');
var fs = require('fs');

var options = {
    key: fs.readFileSync('~/privkey.pem'),
    cert: fs.readFileSync('~/cert.pem'),
    ca: fs.readFileSync('~/chain.pem')
};

const server = new Hapi.Server();
server.connection({address: 'localhost', port: 3000, tls: options});

CORS 지원


1
server.connection({address: 'localhost', port: 3000, tls: options, routes: {cors: {origin: ['*']}} });

GET 처리


1
2
3
4
5
6
7
8
9
10
11
12
13
14
const mongojs = require('mongojs');
server.app.db = mongojs('test', ['users']);// test: DB, users: Collection(Table)

server.route({
    method: 'GET',
    path:'/',
    handler: function (request, reply) {
        // request.query.foo
        var _db = server.app.db;
        _db.users.find({},  {name:1, _id:1}, function (error, data) {
            reply(data);
        });
    }
});

POST 처리


1
2
3
4
5
6
7
8
server.route({
    method: 'POST',
    path:'/{projectName}/save',
    handler: function (request, reply) {
      // request.params.projectName
      // request.payload.arr
    }
});