[MONGODB] 어떻게 useMongoClient (몽구스 4.11.0)를 설정하는 방법?
MONGODB어떻게 useMongoClient (몽구스 4.11.0)를 설정하는 방법?
이것은 내가 내 데이터베이스에 연결하는 데 사용하는 코드입니다 :
private connectDatabase(databaseUri: string): Promise<Mongoose.Connection> {
return Mongoose.connect(databaseUri).then(() => {
debug('Connected to MongoDB at %O', databaseUri);
return Mongoose.connection;
});
}
오늘 나는 버전 4.11.0에 몽구스를 업데이트하고 내 테스트를 실행할 때이 경고를 가지고 :
(node:4138) DeprecationWarning: `open()` is deprecated in mongoose >= 4.11.0,
use `openUri()` instead, or set the `useMongoClient` option if using `connect()`
or `createConnection()`
나는 어떻게 "설정 useMongoClient"에에 대한 정보를 찾을 수 없습니다.
너희들은 어떻게하는 지 알고 있나요?
해결법
-
==============================
1.이것은 당신이 useMongoClient을 사용하는 방법입니다 : mongoose.connect ( 'MongoDB를 : // localhost를 / advisorDemoTestDB', {useMongoClient : TRUE})
이것은 당신이 useMongoClient을 사용하는 방법입니다 : mongoose.connect ( 'MongoDB를 : // localhost를 / advisorDemoTestDB', {useMongoClient : TRUE})
-
==============================
2.{useMongoClient : TRUE} 추가 다른 연결 인수 또는 createConnection 방법으로 그 사용중인 몽구스의 버전에 따라 다릅니다.
{useMongoClient : TRUE} 추가 다른 연결 인수 또는 createConnection 방법으로 그 사용중인 몽구스의 버전에 따라 다릅니다.
// Using `mongoose.connect`... var promise = mongoose.connect('mongodb://localhost/myapp', { useMongoClient: true, /* other options */ }); // Or `createConnection` var promise = mongoose.createConnection('mongodb://localhost/myapp', { useMongoClient: true, /* other options */ });
-
==============================
3.
mongoose.connection.openUri('mongodb://127.0.0.1/camp_v12')
사람이 시도하고있다? 내가 이것을 사용하면 내되지 않는 경고가 사라졌다,이 문서에서했다
http://mongoosejs.com/docs/connections.html
-
==============================
4.이를위한 가장 쉬운 수정, 터미널을 열고 루트 프로젝트로 디렉토리를 변경하는 것 (package.json은 폴더)
이를위한 가장 쉬운 수정, 터미널을 열고 루트 프로젝트로 디렉토리를 변경하는 것 (package.json은 폴더)
운영: NPM 제거 몽구스
그때:
NPM 설치 mongoose@4.10.8 --save
문제 해결됨.
업그레이드는 항상 최고의 옵션이 아닙니다.
http://mongoosejs.com/docs/connections.html
-
==============================
5.타이프 라이터없이 당신은 꽤 많은 문제를 무시하고 Mongoose.connect (databaseUri, {useMongoClient : 사실을})를 사용할 수 있습니다.
타이프 라이터없이 당신은 꽤 많은 문제를 무시하고 Mongoose.connect (databaseUri, {useMongoClient : 사실을})를 사용할 수 있습니다.
당신이 정말로 필요가 없도록하려는 경우 경고가 버전 4.11.0을 피하십시오.
나는 버전 4.11.1으로 업데이트 및 유형 / 몽구스 @ @ 4.7.18는 아직 업데이트되지 않은 그들이 ConnectionOptions에서 필드 useMongoClient을 언급하지 않기 때문에, 이것은 내가 모듈을 수입하는 방법입니다 :
const Mongoose = require('mongoose');
그리고이 기능을 사용 :
private connectDatabase(databaseUri: string): Promise<any> { return Mongoose.connect(databaseUri, { useMongoClient: true }) .then(() => { console.log('Connected to MongoDB at ', databaseUri); return Mongoose.connection; }) .catch(err => debug(`Database connection error: ${err.message}`)); }
-
==============================
6.많은 답변이 말하는 것처럼, {useMongoClient : 사실}를 추가하는 옵션 인수하는 연결 또는 createConnection 방법은 문제를 해결합니다.
많은 답변이 말하는 것처럼, {useMongoClient : 사실}를 추가하는 옵션 인수하는 연결 또는 createConnection 방법은 문제를 해결합니다.
의 경우 예를 들어,
// With mongoose.connect method mongoose.connect('mongodb://localhost/app', { useMongoClient: true }); // With createConnection method mongoose.createConnection('mongodb://localhost/app', { useMongoClient: true });
그러나 MongoClient는 처음부터 무엇인가?
MongoDB를 Node.js를 드라이버 버전 1.2에서 새 연결 클래스 MongoClient는 공식 드라이버 모두에서 동일한 이름이 소개되었다.
새 연결 클래스 MongoClient는 승인이 꺼져있는 기존 DB 연결 클래스는 대조적으로, MongoDB의 모든 기록을 인정합니다.
그래서 {useMongoClient : 사실은} 예전보다는 새 연결 클래스를 사용하는 moongoose 알려줍니다
추가 정보를 원하시면 여기를 클릭하십시오
-
==============================
7.몽구스의 4.11.x와 MongoDB를에 연결 (MLAB 단일 인스턴스 및 MongoDB를 아틀라스 복제 세트를 모두 테스트) :
몽구스의 4.11.x와 MongoDB를에 연결 (MLAB 단일 인스턴스 및 MongoDB를 아틀라스 복제 세트를 모두 테스트) :
const mongoose = require('mongoose'); mongoose.Promise = global.Promise; const options = { promiseLibrary: global.Promise, useMongoClient: true, }; function connect() { mongoose.connect(URI, options) .then(function() { const admin = new mongoose.mongo.Admin(mongoose.connection.db); admin.buildInfo(function(err, info) { if (err) { console.err(`Error getting MongoDB info: ${err}`); } else { console.log(`Connection to MongoDB (version ${info.version}) opened successfully!`); } }); }) .catch((err) => console.error(`Error connecting to MongoDB: ${err}`)); } module.exports = connect;
모델을 만들기 :
const mongoose = require('mongoose'); const userSchema = new mongoose.Schema({...}); module.exports = mongoose.model('User', userSchema);
-
==============================
8.몽구스 문서에 따르면,이 useMongoClient을 설정하는 방법입니다.
몽구스 문서에 따르면,이 useMongoClient을 설정하는 방법입니다.
function connectDatabase(databaseUri){ var promise = mongoose.connect('mongodb://localhost/myapp', { useMongoClient: true, }); return promise; }
-
==============================
9.
var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/starbucks', { useMongoClient: true }); var db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.once('openUri', function() { // we're connected! });
-
==============================
10.오류:
오류:
(노드 : 1,652) DeprecationWarning : 오픈 ()는 () 대신, 몽구스> 4.11.0 = openUri에서 사용을 중단하거나, 연결 () 또는 createConnection ()를 사용하면 useMongoClient 옵션을 설정한다.
연결 속성에 true를 설정 useMongoClient 사람 : 솔루션
var promise = mongoose.connect('mongodb://localhost/myapp', { useMongoClient: true, /* other options */ });
http://mongoosejs.com/docs/connections.html#use-mongo-client 참조 지금 요청을 듣고
-
==============================
11.이를위한 가장 쉬운 수정 :
이를위한 가장 쉬운 수정 :
단자를 통해 프로젝트의 루트 폴더에서이 명령을 실행합니다 :
NPM 제거 몽구스
NPM 설치 mongoose@4.10.8 --save
문제 해결됨.
업그레이드는 항상 최고의 옵션이 아닙니다.
https://github.com/Automattic/mongoose/issues/5399
-
==============================
12.그것은 나를 타이프 라이터를 사용하여 작동합니다 :
그것은 나를 타이프 라이터를 사용하여 작동합니다 :
var dbOpt : any = { useMongoClient: true } mongoose.connect(dbURI, dbOpt);
from https://stackoverflow.com/questions/44749700/how-to-set-usemongoclient-mongoose-4-11-0 by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB를의 bind_ip은 설정하지 않으면 0.0.0.0으로 작동하지 않습니다 (0) | 2019.12.22 |
---|---|
[MONGODB] 명령을 삽입하여 MongoDB의 "upsert"옵션이 있습니까? (0) | 2019.12.22 |
[MONGODB] 몽구스가 : CastError가 : ObjectId가로 캐스트 경로에서 값 "[개체 개체]"실패 "_id" (0) | 2019.12.22 |
[MONGODB] 사용 AngularJS와 및 MongoDB를 / 몽구스 (0) | 2019.12.22 |
[MONGODB] 왜 MongoDB를의 이익이 예상되는 몽구스 사용 스키마는 그것의 스키마이어야 하는가? (0) | 2019.12.22 |