[解決済み] Mongoose - なぜ mongoose モジュールを設定するときに "mongoose.Promise = global.Promise" とするのか?
質問内容
私はMongooseを使って仕事をしています。多くの開発者が以下のようなコマンドを作成しているのを見かけました。
mongoose.Promise = global.Promise;
そこで気になったのが、元の値である
mongoose.Promise
. エディタで次のようなコマンドを入力しました。
const mongoose = require("mongoose");
console.log("promise: ", mongoose.Promise);
コンソールは私を返した。
<ブロッククオートpromise: function Promise() { [ネイティブコード] }.
さて、ではなぜコマンドを
mongoose.Promise = global.Promise
Mongoose のプロミスはすでにネイティブのコードを返しているから?意味がわかりません。どなたかわかる方がいらっしゃいましたら、教えていただければ幸いです。
ありがとうございます。
解決方法は?
これは古い例のレガシーコードで、Mongoose 5 では必要ないものです。
Mongoose 4 は独自のプロミス実装に依存しています。
mpromise
.
mongoose.Promise
は、必ずしも
Promise
をグローバルに展開します。
として Mongoose 4 ドキュメント が記載されています。
マングース5.0では、デフォルトでネイティブプロミスが使用されます(またはbluebird, ネイティブプロミスが存在しない場合)でも ES6互換のプロミスライブラリのプラグインをサポートします。マングース 5.0 は mpromise をサポートしません。
ブルーバードに関する記述はもはや真実ではありませんが、Mongoose 5ではネイティブのプロミスを持たないNodeバージョンのサポートが打ち切られました。
mongoose.Promise = global.Promise;
が必要な場合があります。
global.Promise
は Mongoose をインポートした後に別の実装 (Bluebird など) で割り当てたものです。
global.Promise = Bluebird
をもっと早くから使っていました。
関連
-
[解決済み】最大呼び出しスタックサイズ超過エラーとその修正方法とは?
-
[解決済み】SyntaxError: 期待された式が、'<'を得た。
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] JSONPとは何か、なぜ作られたのか?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] JavaScriptで二重引用符と単一引用符はいつ使うべきですか?
-
[解決済み] 配列の反復処理に "for...in "を使用するのは、なぜ良くないのでしょうか?
-
[解決済み] なぜ ++[[]][+[] +[+[]] は "10" という文字列を返すのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】React Js: Uncaught (in promise) SyntaxError: 位置 0 の JSON で予期しないトークン < が発生しました。
-
[解決済み】JavaScriptで':'(コロン)は何をするのか?
-
[解決済み】JavaScriptのgetElementByNameが機能しない
-
[解決済み】最大呼び出しスタックサイズ超過エラーとその修正方法とは?
-
[解決済み] React with ES7: Uncaught TypeError: Cannot read property 'state' of undefined [duplicate] (未定義のプロパティ'state'を読み込むことはできません。
-
[解決済み】React、Uncaught ReferenceError。ReactDOMは定義されていません
-
[解決済み】SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み】WebSocket接続に失敗しました。WebSocket のハンドシェイク中にエラーが発生しました。予期しない応答コードです。400
-
[解決済み】Jestが予期しないトークンに遭遇した
-
[解決済み】Babel NodeJS ES6: SyntaxError: 予期しないトークンのエクスポート