외부연동 개발시 임시로 서버를 실행해 놓고 테스트 하기 위한 코드를 정리한다.
작성일 : 2022-01-26 nodeJs Ver : v16.13.1

1> 코드작성 (server.js)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | // For Execute Shell // node server.js const http = require( "http" ); const fs = require( 'fs' ); const port = 9090; const name = "OPENDOCS_TEST_SERVER" ; http.createServer((req, res) =>{ let bodyStr = '' ; req.on( "data" , chunk => { bodyStr += chunk; }); req.on( "end" , () => { // Request let transactionId = Date.now().toString(); console.log(`---------- Request (${name} : ${transactionId}) ----------`); console.log(req.headers); console.log( "----------------------------------------" ); console.log(bodyStr); // Response let resStatus = 404; let resHead = { "Content-Type" : "application/json" , transactionId}; let resBody = {}; if (req.url == "/url_a" ) { // - TODO const fileName = 'url_a.json' ; resStatus = 200; resHead = {...resHead, "additionalHead" : "url_a" }; const jsonFile = fs.readFileSync(`./ServerTestCase/${fileName}`, 'utf8' ); resBody = JSON.parse(jsonFile); } else if (req.url == "/url_b" ) { // - TODO const fileName = 'url_b.json' ; resStatus = 200; resHead = {...resHead, "additionalHead" : "url_b" }; const jsonFile = fs.readFileSync(`./ServerTestCase/${fileName}`, 'utf8' ); resBody = JSON.parse(jsonFile); } res.writeHead(resStatus, resHead); res.end(JSON.stringify(resBody)); console.log(`---------- Response (${name} : ${transactionId}) ----------`); console.log(resHead); console.log( "----------------------------------------" ); console.log(resBody); console.log( "------------------------------------------------------------//\n\n\n" ); }); }).listen(port); |
2> 응답샘플 작성 : ServerTestCase 폴더 아래 선언한 fileName 과 일치하게 생성
1 2 3 4 5 6 7 8 | // ./ServerTestCase/url_a.json { "TEST" : "TEST URL-A" } // ./ServerTestCase/url_b.json { "TEST" : "TEST URL-B" } |
파일을 실시간으로 읽어 응답하기 때문에 서버 재시작 없이 응답값을 변경하여 테스트 할 수 있다.