새로운 hello-sqlite에 안녕하세요!

4237 단어 glitchappssqlitenode


Glitch은 사람들이 자신만의 것을 만들기 위해 리믹스할 수 있는 모든 종류의 멋진 프로젝트로 가득 차 있지만 빠른 시작이나 빈 서판을 찾고 있다면 세 가지 최소한의 "hello"프로젝트를 제공합니다. 다음:

  • hello-webpage 은 CSS 및 JavaScript 파일이 있는 간단한 정적 웹 페이지입니다
  • .

  • hello-express Node.js 서버로 hello-webpage를 확장하고 express을 사용하여 요청을 처리하고 페이지/데이터
  • 를 제공합니다.

  • hello-sqlite 은 페이지 세션 사이에 정보를 저장하기 위해 hello-expressdatabase을 추가합니다.
  • hello-sqlite는 스타터 중 세 번째로 인기가 높으며 많은 사람들이 이를 사용하여 새로운 아이디어를 탐색했습니다. 그러나 프로젝트에는 약간의 문제가 있었습니다.

    실제로 데이터베이스를 사용하지 않았습니다!

    왜??



    사용자가 Glitch에서 프로젝트를 볼 때 모두 해당 프로젝트의 동일한 실행 인스턴스를 봅니다. hello-sqlite.glitch.me을(를) 방문하면 내가 거기에 갈 때 보는 것과 동일한 데이터베이스와 대화하고 있습니다. 앱이 사용자 입력을 가져와 데이터베이스에 저장하는 경우 사용자가 입력한 데이터가 표시되고 그 반대의 경우도 마찬가지입니다. 블로그의 댓글 섹션과 같은 것은 정확히 우리가 원하는 것이지만 코드 데모의 경우에는 실제로 의미가 없었습니다. 우리는 또한 누군가가 와서 다른 모든 사용자가 볼 수 있도록 그다지 친숙하지 않은 것을 넣는 위험을 감수하고 싶지 않았습니다!

    물론 사람들은 hello-sqlite를 직접 사용하지 않고 리믹스하여 다른 것으로 만듭니다. 프로젝트를 리믹스한 후 다르게 작동하게 하려면 어떻게 해야 할까요?

    Glitch에서 프로젝트를 리믹스하면 몇 가지 예외를 제외하고 리믹스한 시점의 프로젝트 파일 사본을 얻게 됩니다. .data 라는 특수 폴더에는 아무 것도 복사하지 않습니다. 이 폴더는 해당 단일 프로젝트에 특정한 데이터를 보관하기 위한 것입니다. hello-sqlite 의 경우 여기에서 SQLite 데이터베이스 파일을 보관합니다. 또한 .env 라는 파일을 특별하게 처리합니다. 이 파일은 프로젝트가 작동하는 데 필요한 비밀(예: API 키 또는 프로젝트별 변수)을 보관하기 위한 것입니다. 파일은 다음과 같은 일련의 변수 정의입니다.

    # here are my secrets!
    API_KEY=b33fcabbage
    MY_GREATEST_FEAR=notenoughpudding
    

    프로젝트를 리믹스할 때 모든 값을 제거하지만 리믹스하는 사람이 자신의 이름으로 채울 수 있도록 변수 이름을 그대로 둡니다.

    # here are my secrets!
    API_KEY=
    MY_GREATEST_FEAR=
    

    이것에 대해 생각하면 전구가 꺼졌습니다! hello-sqlite에 변수를 추가했습니다.env.

    DISALLOW_WRITE=TRUE
    

    그런 다음 사용자가 데이터베이스에 항목을 추가할 수 있도록 프로젝트에 코드를 추가했지만 해당 변수가 설정되었는지 확인했습니다.

    // DISALLOW_WRITE is an ENV variable that gets reset for new projects so you can write to the database
    if (!process.env.DISALLOW_WRITE) {
      // write to the database!
    }
    

    즉, 샘플 데이터베이스 작성 코드는 주석을 제거하지 않고도 사용자 정의할 수 있습니다. 리믹스를 클릭하면 설정됩니다! 사용자가 데모도 빌드하는 경우 동일한 이점을 얻기 위해 DISALLOW_WRITE를 true로 설정할 수도 있습니다.

    결론



    약간의 "해킹"입니까? 아마도! 이 솔루션은 직원이 만들었다는 이유만으로 앱을 특별하게 취급하지 않고 다소 영리하다는 적절한 균형을 제공한다고 생각합니다.

    또한 새로운 논리를 추가하는 동안 광범위하게 지원되는 ES6 구문을 사용하고 문서를 정리하도록 JS를 업데이트했습니다.

    사용해 보세요!






    코드 검토를 수행하고 모든 작업을 수행하는 방법에 대한 브레인스토밍을 도와준 모든 사람과 새로운 스타터를 전투 테스트한 모든 사용자에게 감사합니다. 데이터를 서버에 저장하는 간단한 앱을 빌드하려는 경우 리믹스 hello-sqlite 를 시도하고 의견을 알려주세요.



    행복한 Apping!

    좋은 웹페이지 즐겨찾기