우선 노드 서버를 열어야 하니까
서버부터 만들어봅시다.
** node 가 깔려있다는 전제 하에 시작됩니다
npm install express
$ mkdir server // 서버 디렉토리
$ touch server.js // 서버.js 파일
자 이제 프로젝트 폴더 > 서버디렉토리 > 서버.js 파일 입니다.
const express = require('express'); express 연동
const http = require('http');
const app = express();
let path = require('path');
let server = http.createServer(app);
app.get('/', function(req, res) {
res.send('rootpage')
});
server.listen('포트넘버', '127.0.0.1', function() {
console.log('server listen on port': + server.address().port);
///보통 127.0.0.1 은 로컬호스트 넘버이다.
})
이렇게 server.js 를 세팅하고
노드 명령어로 서버를 실행하면...?
node server.js
이렇게 콘솔에 포트넘버가 나오고,
서버 띄우기 성공.
그렇다면 내친김에 공공데이터 포털의 xml 데이터를 받아와, json 으로 파싱해보기로 합시다.
파싱과 , url reques를 위해서는 xml-js 와 request 를 받아주어야 합니다.
npm install xml-js
npm install request
다시 server.js 로 돌아가, 약간의 추가를 해줍시다.
저는 다른 부분을 수정하지 않고,
app.get() 과 server.listen() 사이에 코드를 추가했습니다.
//request , convert
const request = require('request');
const convert = require('xml-js');
app.get('/',
...
)}
//추가된 부분
app.get('/data', function(req,res) {
let requestUrl = "url"
request.get(requestUrl, (err, res, body)=> {
if(err) {
console.log(`err => ${err}`)
}
else {
if(res.statusCode == 200) {
var result = body
console.log(`body data => ${result}`)
var xmlToJson = convert.xml2json(result, {compact: true, spaces: 4});
console.log(`xml to json => ${xmlToJson}`)
}
}
})
)};
server ...
});
그리고 다시 실행해, '127.0.0.1/data' 로 접속하면...
원래는 이렇던 xml 데이터가
이렇게 json으로 파싱되어 출력된다.
다만, 내가 다뤄야 할 데이터는 상당히 대용량이라 이 부분을 더 고려해보아야 할 듯 하다.