Node.js는 JSON 파일에 게시물 상태를 읽고 씁니다.
오늘 우리는 RSS 리더를 통해 얻은 기사를 반복해서 살펴보고 어떤 기사가 소셜에 게시되었는지 추적할 것입니다.
Pre-condition: You need to know how to set up a basic node app 👈
이 기사에서 배울 내용
JSON 파일 설정
JSON 파일은 구조가 매우 쉬우며 다음과 같이 보일 것입니다.
{
"https://daily-dev-tips.com/posts/rss-reader-in-node-js": {
"published": true
},
"https://daily-dev-tips.com/posts/top-10-chrome-extensions-for-developers-👀": {
"published": true
}
}
기본적으로 객체가 이미 이 목록에 있는지 여부만 알면 됩니다.
RSS 피드를 통해 반복
먼저
rss-parser
패키지를 추가해야 합니다.npm i rss-parser
그런 다음 가지고 있는 사이트맵을 사용하여 기사를 반복할 수 있습니다.
let Parser = require('rss-parser');
let parser = new Parser();
(async () => {
let feed = await parser.parseURL('https://daily-dev-tips.com/sitemap.xml');
feed.items.forEach(item => {
console.log(item.id);
});
})();
이제 JSON 파일을 읽고 이 기사를 이미 게시했는지 확인해야 합니다.
먼저
file-system
를 정의합시다.const fs = require('fs');
그런 다음 실제 JSON 파일을 읽을 수 있습니다.
let rawdata = fs.readFileSync('site.json');
let siteData = JSON.parse(rawdata);
이것은 처음에 빈 객체
{}
가 될 것입니다.루프에서 이 항목을 이미 게시했는지 확인해야 합니다.
그렇다면 => 아무 것도 하지 마십시오
없으면 => 마술을 한 다음 JSON 파일에 추가합니다.
feed.items.forEach(item => {
let url = item.id;
if (!siteData.url) {
// Do magic posting stuff
siteData[url] = {
'published': true
};
}
});
루프가 완료되면 JSON을 실제 파일에 저장할 수 있습니다.
fs.writeFileSync('site.json', JSON.stringify(siteData));
그러면 JSON 파일이 다음과 같이 보일 것입니다.
{
"https://daily-dev-tips.com/posts/vanilla-javascript-canvas-images-to-black-and-white/": {
"published": true
},
"https://daily-dev-tips.com/posts/vanilla-javascript-images-in-canvas/": {
"published": true
},
"https://daily-dev-tips.com/posts/vanilla-javascript-colouring-our-canvas-elements-🌈/": {
"published": true
}
}
굉장합니다. 이제 RSS 피드를 구문 분석하고 JSON 파일을 읽고 아직 없는 경우 데이터를 기록했습니다!
이 프로젝트는 GitHub 에서 찾을 수 있습니다.
읽어주셔서 감사합니다. 연결해 보겠습니다!
제 블로그를 읽어주셔서 감사합니다. 내 이메일 뉴스레터를 구독하고 Facebook 또는
Reference
이 문제에 관하여(Node.js는 JSON 파일에 게시물 상태를 읽고 씁니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dailydevtips1/node-js-read-and-write-post-status-to-a-json-file-3p17텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)