MERN 앱의 렌더 배포(무료 등급)

전체 스택 MERN 앱을 Render에 배포하기 위한 가이드



전제 조건:
  • Github Account
  • Render Account
  • 완전히 작동하는 MERN 앱 및 Github의 저장소Here

  • MongoDB 계좌

  • TLDR



    Render에 로그인하여 백엔드용 웹 서비스(Node, Express, MongoDB)와 프런트엔드용 정적 사이트(React)를 생성합니다.

    Deployed App - Contact Bank
    (경고 배포된 링크는 회전하는 데 30초가 걸립니다)

    Render에 배포할 전체 스택 앱을 설계하는 방법에는 여러 가지가 있습니다.
    이 튜토리얼은 다음 파일 구조를 가진 MERN 앱을 기반으로 합니다.

    Contact-Bank (root)/
    ├── client/
       ├── src
       ├── public
       ├── node_modules
       ├── .env
       ├── .gitignore
       ├── package-lock.json
       └── package.json
    ├── config
    ├── models
    ├── node_modules
    ├── routes
    ├── seed
    ├── .env
    ├── .gitignore
    ├── package-lock.json
    ├── package.json
    └── server.js
    


    워크플로우





    (완전히 작동하는 프로덕션 준비 MERN 앱이 없는 경우 아래 단계를 따르십시오. 그렇지 않으면 here으로 이동하십시오.)

    MERN 애플리케이션


  • 렌더 배포용 기본 분기
  • Vercel 배포용 개발 분기 *선택 사항(프론트 엔드 테스트만 해당)

  • 본점을 중심으로 진행하고 있습니다. 연락처 정보가 있는 기본 CRUD 앱인 Contact Bank이라는 MERN 앱을 만들었습니다. MongoDB에 1000개의 연락처를 시드했습니다.
  • 데이터베이스를 시드하기 전에 상태를 테스트해야 하는 경우 contacts.json와 함께 프런트 엔드에 데이터 폴더를 포함했습니다.

  • 모든 것을 허용하는 배포에 영향을 미치지 않는 후크 및 소품 드릴을 사용하려는 경우 상태 관리를 위해 ContextAPI를 사용하고 있습니다.
    단계:
  • 저장소 복제git clone repo

  • MongoDB의 MongoDB 연결 문자열을 환경 변수로 추가합니다(하드코딩하지 마세요. .env 파일에 있어야 합니다). 예:

    MY_MONGO_URI='mongodb+srv:...mongodb.net/contact-bank?retryWrites=true&w=majority'
    




  • MongoDB 시드
  • CLI에서 이 명령을 실행합니다.

  •    node seed/seeds.js
    

    서버 또는 .env 변수와 동일한 수준에서 === undefined



  • 루트 디렉토리 package.json에서 필요한 스크립트는 다음과 같습니다.

    //package.json
    
      "scripts": {
          "start": "node server.js",
          "server": "nodemon server.js",
          "client": "npm start --prefix client",
          "clientinstall": "npm install --prefix client",
          "dev": "concurrently \"npm run server\" \"npm run 
           client\"",
          "render-postbuild": "NPM_CONFIG_PRODUCTION=false 
          npm install --prefix client && npm run build -- 
          prefix client"
        },
    


  • 루트 디렉토리 CLInpm run dev에서 모든 것이 실행되고 UI의 변경 사항이 데이터베이스에 반영되어야 합니다.
  • server.js 내 프로덕션에서 정적 자산을 제공합니다.

  • if (process.env.NODE_ENV === 'production') {
        //*Set static folder up in production
        app.use(express.static('client/build'));
    
        app.get('*', (req,res) => res.sendFile(path.resolve(__dirname, 'client', 'build','index.html')));
      }
    


    배포로 이동하려면 이 단계를 완료해야 합니다.

    세우다



    (완전히 작동하는 MERN 앱이 준비된 경우 여기에서 시작하십시오)

    - 웹 서비스


  • 웹 서비스 생성

  • 설정

  • 이 스크립트로 실행 중인 동시성이 있습니다npm run dev.

  • 환경

  • MongoDB 연결 문자열의 환경 변수

  • 로그


  • - 정적 사이트


  • 정적 사이트 만들기
  • 설정
    이 스크립트를 사용하여 루트npm run render-postbuild에서 빌드 폴더를 생성하도록 Render에 지시하고 있으며 모든 npm 명령이 루트 폴더에서 호출되기 때문에 빌드 폴더의 경로는 ./client/build입니다.
  • 환경
  • 리디렉션/재작성
    내 경로https://contact-bank.onrender.com/api/*는 server.js의 내 경로가 /api/로 생성되므로 최상위 규칙이어야 합니다.
  • 로그

  • 드디어



    그런 다음 약 30분 후에 정적 사이트 링크https://contact-bank-a72l.onrender.com/가 활성화됩니다.


    야후우

    MERN 스택으로 작업하는 개발자가 앞으로 프로젝트를 배포할 수 있는 몇 가지 경로를 가질 수 있도록 Heroku 발표에 비추어 이 튜토리얼을 만들었습니다.

    읽고 행복한 코딩에 감사드립니다.

    링크 🔗



    Conact-Bank Repo
    Github Account
    Render Account
    MERN MongoDB
    MongoDB
    tree.nathanfriend.io

    ❤️❤️❤️

    사회의



    Portfolio
    Github

    🤘
    해피코딩

    좋은 웹페이지 즐겨찾기