-
2014-04-10 MongoDB - poolDB/Nosql 2014. 4. 10. 18:24반응형
* mongodb 게시판, pool connect 방식 적용
* 개발 TIP
- 클라이언트가 데이터값 잘 넘길거라고 생각하면 안 됨. => 나까지 의심하랏
- TRY CATCH / ERR 항상 잡아줘야 함. => 클라이언트의 어떤 요청이라도 죽지 않는 서버!!가 최고
- <HTML> => 클라이언트 사이드
* 콜백함수
- javascript라 함수를 넘길 수 있음.
- 함수 호출 하고 나중에 콜백함수 호출
function asd (c, function(){}){ console.log(c); };
function def(a, callback){console.log(a); callback('bye');}
def('hi', asd);
=> hi bye
- dbpool.js
exports.write = function(data, callback){
pool.acquire(function(err, conn) {
if(err) console.error('err', err);
conn.query('insert into board(writer, title, content, pwd, hit, regdate) values(?,?,?,?,0,now())', data, function(err, result) {
callback(err, result);
});
pool.release(conn);
});
}
- index.js
exports.write = function(req, res){
var writer = req.body.writer;
var pwd = req.body.pwd;
var title = req.body.title;
var content = req.body.content;
var data = [writer, title, content, pwd];
pool.write(data, function(err, result){
});
.
.
.
};
=> pool.write 실행 -> pool.acquire 의 callback 에 익명함수 저장 됨 -> insert 까지 실행 후 callback 실행 ->
------------------------------------------------------------------- dbpool.js
* db test 가능
var generic_pool = require('generic-pool');
var mysql = require('mysql');
var pool = generic_pool.Pool({
name: 'mysql',
create: function(callback) {
var config = {
host: 'localhost',
port: '3306',
user: 'root',
password: '1234',
database: 'test'
};
var client = mysql.createConnection(config);
client.connect(function(err) {
if(err) console.error('err', err);
callback(err, client);
});
}, // create func
destroy: function(client) {
client.end();
},
min: 2,
max: 5,
idleTimeoutMillis: 300000, // 5분동안 접속유지
log: true
}); // pool
process.on('exit', function() {
pool.drain(function() {
pool.destroyAllNow();
});
});
exports.write = function(data, callback){
pool.acquire(function(err, conn) {
if(err) console.error('err', err);
conn.query('insert into board(writer, title, content, pwd, hit, regdate) values(?,?,?,?,0,now())', data, function(err, result) {
callback(err, result);
});
pool.release(conn);
});
}
반응형'DB > Nosql' 카테고리의 다른 글
Centos에 Mongodb 설치 (0) 2014.04.28 20140409 MongoDB (0) 2014.04.09