-
글쓴이글
-
2021년 11월 25일 10:56 #20577
이재형참가자도와주십숑.
1. 환경변수 사용을 위한 라이브러리를 설치합니다.
PS D:\nodejs> npm install dotenv
up to date, audited 97 packages in 750ms
5 packages are looking for funding
runnpm fund
for detailsfound 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, enterrs
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] startingnode 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 restart2021년 11월 25일 13:04 #20590
codingapple키 마스터DB접속 url이 잘못되었거나
아니면 dotenv 라이브러리가 잘 설치된것이 아니거나
.env파일을 다른 이상한 곳에 만들었거나
그런 경우 같습니다 에디터도 껐다가 재시작해봅시다
-
글쓴이글
- 답변은 로그인 후 가능합니다.