[MONGODB] 처리되지 않은 약속을 거부 : 오류 : URL을 구문 분석 할 수 없습니다, 부정
MONGODB처리되지 않은 약속을 거부 : 오류 : URL을 구문 분석 할 수 없습니다, 부정
내가 아마존 리눅스 EC2 인스턴스에서 호스팅, 내 몽고, 데이타베이스에 연결을 시도에 아주 기본적인 시점에서 붙어있어, 그래서 나는 동시에 AWS와 MongoDB를 새로운 오전. 그 이유는 내가 내 데이터베이스의 경로를 구축 할 수 아니에요입니다.
mongoose.connect에게 ( 'mongod : //ec2-user@ec2-XX-XX-XXX-XXX-XX.compute-1.amazonaws.com : 27017 / 테스트') 여기가 내가 사용하려고 해요 것입니다.
그리고 여기 내 테스트 람다 함수의 결과입니다 UnhandledPromiseRejectionWarning 처리되지 않은 약속 거절 (거부 ID : 2) : 오류 : URL 형식이 잘못, 구문 분석 할 수 없습니다
나는 MongoDB의 3.6.5를 사용하고 있습니다.
해결법
-
==============================
1.확인 권한 부여에 대한 구문 다음 5.x를 지원하는 몽구스와 같이 URL에 특수 문자를 사용하지 않은 @, -, +,>
확인 권한 부여에 대한 구문 다음 5.x를 지원하는 몽구스와 같이 URL에 특수 문자를 사용하지 않은 @, -, +,>
mongoose.connect(MONGO_URL, { auth: { user: MONGO_DB_USER, password: MONGO_DB_PASSWORD } })
당신이 deprication 경고 피를 제거 할 경우 또는 "현재의 URL 문자열 파서는 사용되지 않습니다"
추가 옵션 useNewUrlParser
mongoose.connect(MONGO_URL, { auth: { user: MONGO_DB_USER, password: MONGO_DB_PASSWORD }, { useNewUrlParser: true } })
-
==============================
2.내 문제는 더 간단 URI 문제였다. 때문에 mongod 주소에 @ 문자가 있었다.
내 문제는 더 간단 URI 문제였다. 때문에 mongod 주소에 @ 문자가 있었다.
나는 이것을 사용했다 :
return mongoose.connect(encodeURI(process.env.DB_CONNECT)
-
==============================
3.당신은 예를 들어, 사용자 환경 파일에 다음 URI를 사용하는 경우 MongoDB를 : //
: @ ds055915.mlab.com : 55915 / fullstack-VUE-graphql 확인 비밀번호 inMONGOD_URI 같은 특수 문자가 없습니다 @. 내 비밀번호 문자의 일부로 사용 @ 있었다 오류를 얻고 있었다. 내 DB 암호에서 특수 문자를 제거 후 예상대로 모든 일했다. 당신은 예를 들어, 사용자 환경 파일에 다음 URI를 사용하는 경우 MongoDB를 : //
: @ ds055915.mlab.com : 55915 / fullstack-VUE-graphql 확인 비밀번호 inMONGOD_URI 같은 특수 문자가 없습니다 @. 내 비밀번호 문자의 일부로 사용 @ 있었다 오류를 얻고 있었다. 내 DB 암호에서 특수 문자를 제거 후 예상대로 모든 일했다. -
==============================
4.내 경우 아래의 일을 잘합니다.
내 경우 아래의 일을 잘합니다.
내부 db.js
const mongoose = require('mongoose'); const MONGODB_URI = "mongodb://host-name:27017/db-name?authSource=admin"; const MONGODB_USER = "mongouser"; const MONGODB_PASS = "myasri*$atIP38:nG*#o"; const authData = { "user": MONGODB_USER, "pass": MONGODB_PASS, "useNewUrlParser": true, "useCreateIndex": true }; mongoose.connect( MONGODB_URI, authData, (err) => { if (!err) { console.log('MongoDB connection succeeded.'); } else { console.log('Error in MongoDB connection : ' + JSON.stringify(err, undefined, 2)); } } );
노트 :
내 노드 버전 10.x를하다
MongoDB의 서버 버전은 3.6.3이다
몽구스 버전 5.1.2이다 ^
-
==============================
5.난 그냥 같은 오류가 있기 때문에, 안토니 - winzlet @에서 답을 업데이트 원하고이 코드로 해결할 수 있습니다.
난 그냥 같은 오류가 있기 때문에, 안토니 - winzlet @에서 답을 업데이트 원하고이 코드로 해결할 수 있습니다.
mongoose.connect(url, { auth: { user:'usrkoperasi', password:'password' }, useNewUrlParser:true }, function(err, client) { if (err) { console.log(err); } console.log('connect!!!'); });
사실 : 난 그냥 콜백 및 useNewUrlParser를 추가합니다. 나는 "몽구스"를 사용 : "^ 5.2.7",.
코딩 해피!
from https://stackoverflow.com/questions/50590080/unhandled-promise-rejection-error-url-malformed-cannot-be-parsed by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 어떻게 MongoDB를 함께 Elasticsearch를 사용 하는가? (0) | 2019.12.05 |
---|---|
[MONGODB] 산드 대 MongoDB를 [폐쇄] (0) | 2019.12.05 |
[MONGODB] Model.find (). toArray () .toArray이없는 주장 () 메소드 (0) | 2019.12.04 |
[MONGODB] 만들기 mongoose.js 쿼리는 동 기적으로 실행 (0) | 2019.12.04 |
[MONGODB] 고유 한 사용자 ID의 저장 순서에 MongoDB의 자동 증가 (0) | 2019.12.04 |