• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Node.js, Express 게시판 .env 파일에서 민감한 환경변수들 관리하기 문의

.env 파일에서 민감한 환경변수들 관리하기 문의

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 글쓴이
  • #20577

    이재형
    참가자

    도와주십숑.

     

    1. 환경변수 사용을 위한 라이브러리를 설치합니다.

     

    PS D:\nodejs> npm install dotenv

    up to date, audited 97 packages in 750ms

    5 packages are looking for funding
    run npm fund for details

    found 0 vulnerabilities

     

    2. 환경변수가 있는 server.js에 방금 설치한 라이브러리를 등록합니다.

     

    const MongoClient = require('mongodb').MongoClient; //몽고 디비 사용
    const express = require('express'); //Server 걍 이대로 쓰면 됨
    const app = express(); //Server
    const bodyParser = require('body-parser'); //POST body parsing
    const methodOverride = require('method-override') //form 태그에서도 PUT요청을 할 수 있음 (npm install method-override)
    const passport = require('passport'); //session방식 로그인 구현
    const LocalStrategy = require('passport-local').Strategy; //session방식 로그인 구현
    const session = require('express-session'); //session방식 로그인 구현
    require('dotenv').config() //라이브러리 등록

     

    3. server.js와 같은 경로에 .env 파일을 하나 만들어줍니다

    PORT=8080
    DB_URL="mongodb+srv://admin:1024werT!@cluster0.gc6ni.mongodb.net/myFirstDatabase?retryWrites=true&w=majority"

     

    4. 그럼 환경변수들을 server.js에다가 불러오도록 합시다.

    기존

    var db;
    MongoClient.connect('mongodb+srv://admin:1024werT!@cluster0.gc6ni.mongodb.net/myFirstDatabase?retryWrites=true&w=majority', function(에러, client){
        //연결되면 아래를 순차적으로 진행
        if (에러) return console.log(에러);

        db = client.db('todoapp') //todoapp 이라는 database(폴더)에 연결

        app.listen('8080', function(){
          console.log('listening on 8080')
        });
      })

     

    env 파일적용

    var db;
      MongoClient.connect(process.env.DB_URL, function(err, client){
      if (err) return console.log(err)
      db = client.db('todoapp');
      app.listen(process.env.PORT, function() {
        console.log('listening on 8080')
      });
    })

    5. env파일 코드로 실행시 아래문구가 뜨고 서버동작이 안됩니다 (기존은 잘되요) 다르게 작성한게 없는거 같은데 도움 부탁드립니다. 선생님

     

    PS D:\nodejs> nodemon server.js
    [nodemon] 2.0.15
    [nodemon] to restart at any time, enter rs
    [nodemon] watching path(s): *.*
    [nodemon] watching extensions: js,mjs,json
    [nodemon] starting node server.js
    TypeError: Cannot read properties of undefined (reading 'match')
    at new ConnectionString (D:\nodejs\node_modules\mongodb-connection-string-url\lib\index.js:64:27)
    at parseOptions (D:\nodejs\node_modules\mongodb\lib\connection_string.js:213:17)
    at new MongoClient (D:\nodejs\node_modules\mongodb\lib\mongo_client.js:62:63)
    at Function.connect (D:\nodejs\node_modules\mongodb\lib\mongo_client.js:184:33)
    at Object.<anonymous> (D:\nodejs\server.js:36:15)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    [nodemon] clean exit - waiting for changes before restart

     

    #20590

    codingapple
    키 마스터

    DB접속 url이 잘못되었거나

    아니면 dotenv 라이브러리가 잘 설치된것이 아니거나

    .env파일을 다른 이상한 곳에 만들었거나

    그런 경우 같습니다 에디터도 껐다가 재시작해봅시다 

    #20593

    이재형
    참가자

    파일명을 .env 가 아니라 process.env로 해서 그런것같습니다. .env로 고치니 잘 되네용

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠