[解決済み] (node:3341) DeprecationWarning。Mongoose: mpromise
2023-03-13 18:19:33
質問
mongooseの上にカスタムメソッドを持つクラスを開発しようと思って、自分のクラスでmongooseを拡張しましたが、新しいcarメソッドを作成するために呼び出すと動作しますが、そのストリップとエラーは、私が何をしようとしているかを見ることができます。
このような警告が表示されます。
(node:3341) DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html
した後
driver.createCar({
carName: 'jeep',
availableSeats: 4,
}, callback);
driver は Driver クラスのインスタンスです。
const carSchema = new Schema({
carName: String,
availableSeats: Number,
createdOn: { type: Date, default: Date.now },
});
const driverSchema = new Schema({
email: String,
name: String,
city: String,
phoneNumber: String,
cars: [carSchema],
userId: {
type: Schema.Types.ObjectId,
required: true,
},
createdOn: { type: Date, default: Date.now },
});
const DriverModel = mongoose.model('Driver', driverSchema);
class Driver extends DriverModel {
getCurrentDate() {
return moment().format();
}
create(cb) {
// save driver
this.createdOn = this.getCurrentDate();
this.save(cb);
}
remove(cb) {
super.remove({
_id: this._id,
}, cb);
}
createCar(carData, cb) {
this.cars.push(carData);
this.save(cb);
}
getCars() {
return this.cars;
}
}
何が間違っているのか、何か考えはありますか?
どのように解決するのですか?
ドキュメントを読んだ後、この問題を解決するために私が行ったことは次のとおりです。 http://mongoosejs.com/docs/promises.html
docの例ではbluebird promise libraryを使っていますが、私はネイティブのES6 promiseを選びました。
を呼び出しているファイルでは
mongoose.connect
:
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://10.7.0.3:27107/data/db');
[編集:@SylonZero さんから、私の回答のパフォーマンス上の欠陥を指摘していただき、ありがとうございました。この回答は非常に多くの人に見られているので、私はこの編集を行う義務感を感じ、また
bluebird
の使用を奨励します。より教育的で経験豊富な詳細については、この回答の下にある回答をお読みください。]
関連
-
[解決済み】Node.js getaddrinfo ENOTFOUND
-
[解決済み] テスト
-
[解決済み】モジュール 'internal/util/types' が見つかりません。
-
[解決済み】ENOENT, そのようなファイルまたはディレクトリがありません。
-
[解決済み】POSTできない/expressを使用するとエラーが発生する
-
[解決済み】npm 5で作成されたpackage-lock.jsonファイルはコミットするのでしょうか?
-
[解決済み] npm install エラー - ローカルの発行者証明書を取得できません。
-
[解決済み] のエラーが発生しました。これはおそらくnpmの問題ではありません。上に追加のログ出力があると思われます
-
[解決済み] nodejsでfindAllのソート順を続編にする
-
[解決済み] TypeErrorです。リクエストパスにエスケープされていない文字が含まれています。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] リソースの読み込みに失敗しました: net::ERR_CONNECTION_REFUSED : Nodejs
-
[解決済み】Node Version Manager のインストール - nvm コマンドが見つかりません。
-
[解決済み】エラー TRK0005: 位置特定に失敗しました。"CL.exe"
-
[解決済み】"npm update -g" の後に "Cannot find module 'npmlog'" というエラーが発生する。
-
[解決済み] bodyParser は非推奨です express 4
-
[解決済み] Npmエラー - Windows NT - 解決方法
-
[解決済み] S3 Bucket に何かを送信しようとすると、AWS Missing credentials が表示される (Node.js)
-
[解決済み] http-server コマンドが見つかりません。
-
[解決済み] Yarn にパッケージを強制的に再インストールさせるにはどうしたらいいですか?
-
[解決済み] express は `body-parser deprecated undefined extended` としてエラーを投げます。