web-dev-qa-db-ja.com

(ノード:71307)[DEP0079] DeprecationWarning

MongoDBドキュメントの更新をお試しください

(ノード:71307)[DEP0079] DeprecationWarning:.inspect()によるオブジェクトのカスタム検査機能は廃止されました

ノードバージョンv10.5.0、dbバージョンv3.6.5、Mongooseバージョン[email protected]

Campground.findById(campgroundId, function(err, campground){
    if(err){
        console.log(err);
    } else {
        console.log(campground.celebrity);
        Celebrity.create(celebrityData, function(err, celebrity){
            if(err){
                console.log(err);
            } else {
                //save comment
                celebrity.save();
                campground.celebrity.Push(celebrity);
                campground.save();
                console.log(celebrity);
                //req.flash('success', 'Created a comment!');
            }
        });
    }
});
7
Kiran Ghatage

このエラーを心配する必要はありません。これはmongooseの警告です。実際には、Mongooseはinspect()を使用してoutputをデバッグします。ノード12.xの前に更新される可能性があります。今のところ、これを使用しても安全です。

心配する必要はありません。

この情報を確認してください。 https://nodejs.org/api/deprecations.html#deprecations_dep0079_custom_inspection_function_on_objects_via_inspect

DEP0079:.inspect()#タイプを介したオブジェクトのカスタム検査機能タイプ:ランタイム

オブジェクトでinspectという名前のプロパティを使用してutil.inspect()のカスタム検査関数を指定することは非推奨です。代わりにutil.inspect.customを使用してください。バージョン6.4.0より前のNode.jsとの後方互換性のために、両方を指定できます。

詳細が必要な場合は、こちらをご覧ください。これは進行中です。ノード10に警告が表示されます

https://github.com/Automattic/mongoose/issues/642

13
Himanshu sharma

非推奨メッセージを取得しないために、これに応じてmongooseバージョン5.2.10以降にアップグレードすることができます Github mongoose issue と、コード内の適切な場所で以下を設定します:

mongoose.set('useCreateIndex', true)
5
King Rayhan

5.2.10にアップグレードして設定する

  mongoose.set('useCreateIndex', true);
3
viz

それを設定する別の方法は...

mongoose.connect(
    "mongodb://<user>:<password>@<url>",
    { 
      useNewUrlParser: true, 
      useCreateIndex: true 
    }
  )

詳細については、こちらをご覧ください: https://github.com/Automattic/mongoose/issues/689

3
hp001

この問題を解決するには、useNewUrlParserとuseCreateIndexを使用する必要があります。以下のコードを参照してください。

mongoose.connect(
 config.databaseUrl,
 { 
    useNewUrlParser: true, 
    useCreateIndex: true 
 }
)

または

mongoose.set("useCreateIndex", true);    
mongoose.connect(
    config.databaseUrl,
    { 
        useNewUrlParser: true
    }
  );

オプションuseCreateIndexを接続メソッドに追加する必要があります

mongoose.connect(keys.mongoURI, {
    useNewUrlParser: true,
    useCreateIndex: true,
})
2
Volodymyr Khmil

完全にランダムですが、少なくとも模倣の答えではありません:誤ってModel.find()の代わりにModel.findOne()を使用したときに、この非推奨警告(および予期しない動作)が発生していました

私の誤ったコードはこのように見えました

User.find(query)
.then(user => {
  console.log(user.emailSettings.confirmToken)
})

...通常のオブジェクト/配列では、これはTypeError: Cannot read property 'confirmToken' of undefinedで失敗しますが、mongo文書配列ではどうやらこの検査を行い、この非推奨警告を表示します。

1
MalcolmOcean