Nodejs Mapper + transaction Opensource 진행과정2

지금까지 작업해온 부분이고



부족하지만 처음 opensource를 개발하고있으니 진행과정을 꾸준히 올려봐야겠다.

이전까지 진행사항중 할 수 없었던 것.

만약에 user 테이블에 Query를 날린후에 사용자 이름을 특정 테이블에 넣으려면
insert문이 추가되어야 하는데 특정 쿼리를 날린후에 실행되는 코드이기때문에 이경우 어떻게 해결할지 고민하다 callback으로 result값을 받게 만들었다 

예제 Query는 아래와 같다



router.get('/query/test4', function(req, res, next) {
    var tasks = taskM.makeTasks();
    var field = {
        'content': 'yaho'
    };

    tasks.push(taskM.getTask('test.insert_tb_board', field, function(result) {}));
    tasks.push(taskM.getTask('test.insert_tb_board_reply', field, function(result) {
        console.log('lastInsertId : ' + result.insertId);
        for (var i = 0; i < 4; i++) {
            //tasks.push(taskM.getTask('test.insert_tb_board', field));  // tasks의 마지막에 쿼리를 추가
            tasks.unshift(taskM.getTask('test.insert_tb_board', field)); // tasks의 처음에 쿼리를 추가
        }
    }));
    tasks.push(taskM.getTask('test.select_tb_board_reply', field, function(result) {}));

    executeManager.start(res, tasks, false);
});

test.insert_tb_board_reply 를 날린후에 그 결과를 받아서
아래 tasks.unshift 하면서 test.select_tb_board_reply 를 실행하기전 insert_tb_board query를 4번 더 실행하는 코드이다

만약에 test.insert_tb_board 가 실행된후 select_tb_board_reply 가 실행되고 그다음에 4번의 insert가 이루어지고 자 한다면 tasks.push를 호출하면 된다.

framework를 만든 목적이 최대한 코드는 심플하게하기 위해 만들었는데
조금더 두고봐야겠다..

그리고 에러가 났을때는 어떻게 할지 ... 조금더 고민해봐야겠다..

Comments

Popular posts from this blog

Project euler 169 found clue

Floyd-Warshall's algorithm