IT Engineering/MEAN Stack
[Node.js] API 만들어보기 - 1
glorymind
2018. 9. 7. 11:02
반응형
이전 포스팅에서 연결했던 Sqlite DB내용을 API로 제공하도록 구현해보겠습니다.
우선 기존 소스를 수정합니다.
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 | const sqlite3 = require('sqlite3').verbose(); var treeList = []; // open database in memory let db = new sqlite3.Database('./db/tms.db', (err) => { if (err) { return console.error(err.message); } console.log('Connected to the in-memory SQlite database.'); }); db.serialize(() => { db.each(`SELECT LineNo, SectionNo FROM TB_Tree`, (err, row) => { if (err) { console.error(err.message); } console.log(row.LineNo + "\t" + row.SectionNo); var _LineNo = row.LineNo; var _SectionNo = row.SectionNo; treeList.push({ LineNo:_LineNo, SectionNo:_SectionNo }); }); }); // close the database connection db.close((err) => { if (err) { return console.error(err.message); } console.log('Close the database connection.'); }); exports.treeList = function(){ return treeList; } | cs |
db.serialize() 내부에보면 treeList 라는 컬렉션에다가 json 형식으로 데이터를 push하는 것을 볼수 있습니다.
해당 리스트를 전달하기 위해
exports.treeList = function(){
return treeList;
}
로 전달하고 메인이되는 api.js를 작성해봅니다.
1 2 3 4 5 6 7 8 9 10 11 12 | var http = require('http'); var sqlite = require('./sqliteSample.js'); http.createServer(function (req, res) { var treeList = sqlite.treeList(); res.writeHead(200, {'Content-Type' : 'application/json'}); res.end(JSON.stringify(treeList)); }).listen(8989); | cs |
api.js에서는 아까 작성한 sqliteSample.js를 include하고
var treeList = sqlite.treeList(); 로 읽은 DB를 가지고 옵니다.
그리고 화면에 json 타입으로 쓰기 위해서
res.writeHead(200, {'Content-Type' : 'application/json'});
res.end(JSON.stringify(treeList));
위와 같이 코딩을 합니다.
위 소스를 실행해보면 콘솔에도 출력이 되고 웹페이지에서도 다음과같이 출력됩니다.
반응형