Node.js는 JSON 파일에 게시물 상태를 읽고 씁니다.

8284 단어 jsonnode
얼마 전에 특정 플랫폼에 자동 게시하기 위해 내RSS reader를 구축하기 시작했지만 끝내지 못했습니다 👀.

오늘 우리는 RSS 리더를 통해 얻은 기사를 반복해서 살펴보고 어떤 기사가 소셜에 게시되었는지 추적할 것입니다.

Pre-condition: You need to know how to set up a basic node app 👈



이 기사에서 배울 내용
  • Node.js의 JSON 파일에서 데이터 읽기
  • Node.js의 JSON 파일에 데이터 쓰기
  • RSS 데이터 읽기
  • 실행 변경 사항 추적

  • 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 또는

    좋은 웹페이지 즐겨찾기