FeedMe.js: RSS/Atom/JSON 피드 파서
요약
FeedMe.js는 RSS, Atom, JSON 등 다양한 형식의 피드(feed) 데이터를 파싱할 수 있는 순수 JavaScript 라이브러리입니다. 외부 종속성 없이 배포가 용이하며, `sax-js`와 `clarinet`를 활용하여 XML 및 JSON 구문을 처리합니다. 사용자는 이벤트 리스너를 통해 항목별 데이터나 특정 태그의 값을 실시간으로 처리할 수 있습니다.
핵심 포인트
- RSS/Atom/JSON 등 다양한 피드 형식을 지원하는 파서입니다.
- 외부 종속성 없이 순수 JavaScript로 구현되어 배포가 간편합니다.
- 이벤트 기반(event-driven) 방식으로 데이터를 스트리밍 처리할 수 있습니다.
FeedMe.js
feedme.js는 RSS/Atom/JSON 피드 파서입니다. 다른 몇몇 피드 파서와 무엇이 다를까요? 이 파서는 XML 구문을 위해 sax-js를, JSON 구문을 위해 clarinet를 사용합니다. 이는 순수 Javascript로 코딩되었음을 의미하며, 따라서 배포하기가 더 쉽습니다. 저는 외부 종속성을 설치하거나 컴파일할 필요가 없는 파서가 필요했습니다.
사용법 (Usage)
const FeedMe = require('feedme');
const https = require('https');
...
API
new FeedMe([buffer])
FeedMe 파서의 새 인스턴스를 생성합니다. buffer는 파서가 전체 피드 문서를 JSON 객체로 버퍼링하도록 설정할 수 있으며, 이 경우 FeedMe#done() 메서드를 사용할 수 있습니다.
parser.write(xml)
파서에 데이터를 씁니다.
parser.done()
buffer가 true일 때만 사용 가능합니다. 파서에서 end 이벤트가 발생한 후 호출해야 하며, 피드를 Javascript 객체로 반환합니다. 하위 요소들은 이름이 키인 자식 객체로 배치됩니다. 하나의 객체가 같은 이름을 가진 여러 개의 자식을 가질 경우, 이들은 배열에 담깁니다. 항목(Items)은 항상 배열에 담깁니다.
const FeedMe = require('feedme');
const http = require('http');
...
parser.done()이 반환할 수 있는 예시입니다.
{
type: 'rss 2.0',
title: 'Liftoff News',
...
이벤트: 'item'
Object- 피드의 항목(Item).
파서가 새로운 피드 항목을 찾을 때마다 발생합니다. 항목은 <item> 또는 <entry> 태그 내부에 있을 수 있습니다.
이벤트: tagname
Object- 발견된 태그의 값을 포함하는 객체.
문서 루트에서 태그 파싱이 완료될 때마다 발생합니다. 여기서 루트는 <channel> 또는 <feed> 태그입니다. 예시:
parser.on('description', (d) => {
// do something
});
이벤트: 'type'
string- 피드의 유형. 예시: atom, rss 2.0, json.
Event: 'error'
Error
문서 파싱 중 오류가 발생했을 때 방출됩니다.
설치
npm install feedme
테스트
테스트는 mocha를 사용하여 작성되었습니다.
npm test
AI 자동 생성 콘텐츠
본 콘텐츠는 개발 자료 GitHub · ec1fbd44의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기