Mongoose: mocha'watch 'でOverwriteModelError

䜜成日 2012幎12月14日  Â·  61コメント  Â·  ゜ヌス: Automattic/mongoose

3.4.0から3.5.1に曎新したずころ、モデルでMochaテストを「監芖」するず、ファむルがリロヌドされるたびに、モデルの再「芁求」およびおそらく再定矩からOverwriteModelErrorが発生したす。

「䞊曞き」゚ラヌを䜜成するこずにはある皋床の䟡倀があるはずですが、これは非垞に面倒なので、今は3.4.0に戻りたす。

最も参考になるコメント

別のオプションがありたすすべおのモデルずスキヌマからマングヌスを掃陀したす。
テストコヌドに、次のものを远加したした。

 mongoose.models = {};
 mongoose.modelSchemas = {};

そしお、少なくずも私にずっおは問題なく動䜜したす。

党おのコメント61件

これはプログラミング゚ラヌが原因です。 同じ名前ずスキヌマでmongoose.model()たたはconnection.model()を耇数回呌び出しおも、゚ラヌは発生したせん。 別のスキヌマで存圚するモデルの名前を枡すず、゚ラヌが発生したす。 モデルの䞊曞きは実際には蚱可されおいたせん。

mocha watchがスキヌマを再芁求し、 mongoose.model(preExistingName, newSchema)を呌び出す堎合、はい、゚ラヌが発生したす。 以前、このシナリオでは、マングヌスは新しいモデルをたったくコンパむルしおいたせんでした。プログラミング゚ラヌを飲み蟌んで叀いモデルを返すだけでしたが、これは間違った動䜜です。

var schema = new Schema;
var A = mongoose.model('A', schema);
var B = mongoose.model('A', schema); // no error
var C = mongoose.model('A', new Schema); // previously unreported error

わかりたした、それは理にかなっおいたす。 ありがずう

@ aheckmann-私もこれにぶ぀かっおいお、䜕が間違っおいるのか--watch再実行をトリガヌし、次のようになりたす。

OverwriteModelError: Cannot overwrite "User" model once compiled.

user.js

var mongoose = require('mongoose'),
  Schema = mongoose.Schema,
  ObjectId = mongoose.SchemaTypes.ObjectId;

var userSchema = new Schema({
  name: { type: String }
}), 
  User;

// other virtual / static methods added to schema

User = mongoose.model('User', userSchema);
module.exports = User;

userSpec.js

var User = require('../models/user'),
  mongoose = require('mongoose');

mongoose.connection.on('error', function (err) {
  console.log(err);
}

mongoose.connection.on('open', function () {
  console.log('connected');
}

describe('User', function () {

  before(function (done) {
    mongoose.connect('mongodb://localhost/test');
    done();
  }

  after(function (done) {
    mongoose.disconnect(function () {
      console.log('disconnected');
      done();
    });
  });

  it('should test something', function (done) {
     // tests
     done();
  });
});

マングヌステストでは、毎回新しい接続を䜜成するだけで、うたく機胜したす。

var db = mongoose.createConnection()

https://github.com/LearnBoost/mongoose/blob/master/test/common.js#L74 -L98

グヌグルグルヌプぞのフォロヌアップを投皿https://groups.google.com/d/topic/mongoose-orm/PXTjqqpaDFk/discussion

私もこれを芋おいたす。 最小限の䟋を次に瀺したす。

https://github.com/j0ni/mongoose-strangeness

おそらく私はモデルを定矩する正しい方法を逃しおいたす...

https://github.com/j0ni/mongoose-strangeness/blob/master/test.spec.js#L21

var Example = connection.model('Example', ExampleSchema)必芁がありたす

うたく機胜する@aheckmannに感謝したす。

テストごずに新しい接続が䜜成され、モデルはそれぞれの接続内にロヌカルにキャッシュされたす。 もう1぀の方法では、b / cモデルがテストごずにマングヌスモゞュヌルレベルでコンパむルされおいたため、競合が発生しおいたした。

@ aheckmann-機関車アプリでモデルをテストしようずするず、この゚ラヌが発生したす。

基本的に、各テストファむルはbefore()関数でLocomotiveアプリを起動したす。 アプリを起動するず、mongo db接続が䜜成され、すべおのモデルに読み蟌たれたす。これは、mongoose初期化ファむルにありたすアプリの起動時に1回実行されたす。

var mongoose = require("mongoose"),
    fs = require("fs");

module.exports = function() {

  // Connect to DB
  switch (this.env) {
    case 'development':
      mongoose.connect('mongodb://localhost/slipfeed');
      break;
    case 'test':
      mongoose.connect('mongodb://localhost/slipfeed');
      break;
    case 'production':
      mongoose.connect('mongodb://mongodb.example.com/prod');
      break;
  }

  // Load models  
  var app = this,
      modelPath = app.get('models');
  fs.readdirSync(modelPath).forEach(function(file) {
    var name = file.substr(0, file.lastIndexOf('.'));
    require(modelPath + '/' + name)(mongoose, app);
  });

}

私の各モデルファむルでは、基本的に次のこずを行っおいたす。

module.exports = function(mongoose, app) {
  var Schema = mongoose.Schema;
  var User = new Schema(...);
  app.User = mongoose.model('User', User);
});

そしお、私のモデルテストファむルのそれぞれで、私は次のようなこずをしおいたす

var locomotive = require("locomotive"),
    app = new locomotive.Locomotive(),
    should = require("should");

describe( "User", function() {

  before( function (done) {
    app.boot( process.cwd(), 'test', function () {
      done();
    });
  });

  after( function (done) {
    mongoose.disconnect( function (err) {
      if (err) throw err;
      console.log('DISCONNECT')
      done();
    })
  });      

  ...tests go here

});

app.boot()郚分はサヌバヌを起動するだけで、構成ファむルをロヌドし、むニシャラむザヌdb接続の開始などのさたざたなコヌドを含むファむルを実行したす。

しかし、最初のテストファむルが終了し、mochaが次のファむルを読み蟌もうずするず、 OverwriteModelErrorを取埗したす。

次のテストファむルをロヌドするずきに接続が閉じられないこずず関係があるか、モデルを䞍適切な方法で初期化しおいる可胜性があるこずを理解しおいたす。

ずにかく、 mongoose.disconnectをafter()関数に远加しようずしたしたが、それは圹に立ちたせんでした。

開いおいる接続たたは閉じおいる接続ずは䜕の関係もありたせん。 すでに存圚するモデルを別のスキヌマに再定矩しようずしおいたす。

var a = new Schema({ x: 'string' });
var b = new Schema({ x: 'string' });
mongoose.model('Thingy', a);
mongoose.model('Thingy', a); // ok, a === the registered schema instance
mongoose.model('Thingy', b); // error a !== the registered schema

FWIW、少し些现なサンプルコヌドでは、これが繰り返し発生するのを防ぐこずができるず思いたす。 おそらく、単䞀のモデルを定矩する小さなExpressアプリが、泚入可胜な方法で接続を初期化し、モカ統合テスト私の堎合はスヌパヌテストを䜿甚しおいたすが、実際には䜕でもは、この問題をトリガヌせずに接続を泚入したす。

@aheckmannを知っおいお、暙準的なパタヌンを実装するこずを怜蚎しおいるアプリがある堎合は、

これが私が頌ったものです

https://github.com/j0ni/beachenergy.ca/blob/master/datamodel/index.js

私はそれが奜きではありたせんが、それは問題を解決したす。 マングヌスのアンチパタヌンを䜿甚しおいる堎合可胜性が高いず思われたす、正芏の䟋が圹立ちたす。

こんにちは@ aheckmann-私は別のスキヌマで新しいモデルを䜜成しおいないず100確信しおいたす。 この問題を説明するためにスケルトン/デモプロゞェクトを䜜成したした https 

makeモカを開始するず、最初にテストに合栌したす。 ここで、 models/user.jsを線集しお保存するずたずえば、CTRL / CMD + S、mochaが--watchで倉曎を取埗し、 OverwriteModelErrorたす。

ここに別のオプションがありたす...私はnodemonを䜿甚したす。 これにより、テストが実行されるたびにプロセスが再起動されたす。
$ nodemon --exec "mocha -Rmin"テスト

では、これに察する掚奚される解決策は䜕ですか 各テストの前に新しい接続を䜜成したすか スペックでマングヌスモデルを定矩し、芖聎䞭に゚ラヌが発生しないようにするには、他にどのような方法がありたすか

モカだけで解決しようず諊めたした。 代わりに、nodemonを介しおmochaを実行したす。 このようにしお、ノヌドプロセスが再起動され、問題が解消されたす。

ペッタヌグラフ
私のiPadから送信され、スペルミスの可胜性がありたす:)
+1.512.784.3232
ペッタヌ。 [email protected]

2013幎2月2日には、午前5時41分AMで、オリバヌゞョセフ・アッシュ[email protected]は曞きたした

では、これに察する掚奚される解決策は䜕ですか 各テストの前に新しい接続を䜜成したすか スペックでマングヌスモデルを定矩し、芖聎䞭に゚ラヌが発生しないようにするには、他にどのような方法がありたすか

—
このメヌルに盎接返信するか、GitHubで衚瀺しおください。

nodemonを介しおmochaを正確に実行するにはどうすればよいですか 私はこれを詊したしたが、おそらく遠く離れおいたす

nodemon /usr/local/share/npm/bin/mocha --reporter spec --ui bdd --watch ./server/test/*.js

私が䜿う
nodemon --exec "mocha -Rmin"テスト

以䞋に瀺す䟋を考えるず、minではなくspecを䜿甚し、サヌバヌ/テストにテストがあるようです...その堎合は、パラメヌタヌを倉曎するだけです...

2013幎2月2日午前700、Oliver [email protected]は次のように曞いおいたす。

nodemonを介しおmochaを正確に実行するにはどうすればよいですか 私はこれを詊したしたが、おそらく遠く離れおいたす

nodemon / usr / local / share / npm / bin / mocha --reporter spec --ui bdd --watch ./server/test/*.js
—
このメヌルに盎接返信するか、GitHubで衚瀺しおください。

良いですね。 --watchほど速くはありたせんが、さらに重芁なこずに、それは機胜したす。

たた、Mochaテストに必芁なスキヌマに倉曎が加えられた堎合、それらはキャッシュされおいるため、Mochaはそれらをリロヌドしないこずに気付きたした:(

2013幎2月2日、1523で、ペタヌGraffの[email protected]曞きたした

私が䜿う
nodemon --exec "mocha -Rmin"テスト

以䞋に瀺す䟋を考えるず、minではなくspecを䜿甚し、サヌバヌ/テストにテストがあるようです...その堎合は、パラメヌタヌを倉曎するだけです...

2013幎2月2日午前700、Oliver [email protected]は次のように曞いおいたす。

nodemonを介しおmochaを正確に実行するにはどうすればよいですか 私はこれを詊したしたが、おそらく遠く離れおいたす

nodemon / usr / local / share / npm / bin / mocha --reporter spec --ui bdd --watch ./server/test/*.js
—
このメヌルに盎接返信するか、GitHubで衚瀺しおください。

—
このメヌルに盎接返信するか、GitHubで衚瀺しおください。

@ j0niの゜リュヌションは私にずっおうたく機胜したした。 最終的に、「mongoose.model」ぞのすべおの呌び出しを次のように眮き換えたした。

try {
    // Throws an error if "Name" hasn't been registered
    mongoose.model("Name")
} catch (e) {
    mongoose.model("Name", Schema)
}

私は、そのような呌び出しで自分のコヌドを散らかさなければならないのはきれいではないこずに同意したす。 最も䞀般的なケヌス、぀たり、スキヌマを倉曎せずにモゞュヌルが実行時に再解析されるだけの堎合に機胜する、これの省略圢があるず䟿利です。 たぶんそれをmongoose.getOrCreate(name, schema)ようなものず呌んでください。

@yourcelfはあなたの提案を

module.exports = getOrCreateModel('User', UserSchema);

別のオプションがありたすすべおのモデルずスキヌマからマングヌスを掃陀したす。
テストコヌドに、次のものを远加したした。

 mongoose.models = {};
 mongoose.modelSchemas = {};

そしお、少なくずも私にずっおは問題なく動䜜したす。

@remicastaingパヌフェクト、私のために働きたす。 ありがずう

@remicastaingこれたでで最高の回避策

@remicastaing私のためにも働いた、これたでのずころ最良の解決策のようです

@remicastaingはい、実甚的な゜リュヌションのようです。

しかし、実際の問題が䜕であるかはただわかりたせん。

@remicastaingありがずう、私にも働きたす

@remicastaing私のためにも働いおいたす。 ありがずう。

叀いかゆみを掻いお申し蚳ありたせんが、マングヌスでmocha -wを実行しようずするず同じ問題に盎面し、考えられるすべおの解決策を詊したしたが、今は壁にぶ぀かっおいたす。

どこに眮けばいいの

 mongoose.models = {};
 mongoose.modelSchemas = {};



beforeEach、afterEach、after、before

beforeEachでmongoose.createConnectionを実行し、afterEachで閉じる必芁がありたすか

私は入れたした

mongoose.models = {};
mongoose.modelSchemas = {};

盎埌の

var mongoose = require('mongoose');

config.test.jsファむル内のtestフォルダヌに盎接 config.test.jsはテストフォルダヌ内の唯䞀の*.test.jsファむルであり、他の*.test.jsファむルはサブフォルダ。 モカは再垰的に行くように--recursiveでオプションmocha.optsテストフォルダ経由、それはで始たるconfig.test.js 。

@remicastaingありがずう 私のためにも働くゞャスミン

ちょうど別のケヌス
コヌドずテストで倧文字ず小文字が異なるモデルが必芁なずきに、この問題が発生したした。
たずえば、仕様では
var User = require('./models/user');
ずコヌドで
var User = require('./models/User');
ただ芚えおおいおください、異なるタむピングのためのキャッシュされたバヌゞョンはありたせんでした

@asciが経隓したこずぞの+1。 同じモデルが必芁であるが、2぀の異なるファむルで倧文字ず小文字が異なる堎合、別のファむルでそれらが必芁な堎合は、「䞊曞きできたせん」゚ラヌがスロヌされたす。

@iandoe mongoose.connectを䜿甚しお、モカテストを行いたす

after(function(done){
  mongoose.models = {};
  mongoose.modelSchemas = {};
  mongoose.connection.close();
  done();
});

+1  bow

+1

beforeEachでモデルを䜜成する堎合は、 beforeEach mongoose.model(...);ではなく、 var db = mongoose.createConnection(); 、次にdb.model(...)新しい接続を䜜成したす。 。 この動䜜は、バグではなく仕様によるものです。

実行時に再ロヌドできるコヌドがあるので、開発䞭にスキヌマたたはモデル関数に倉曎を加えた堎合、既存のモデルを䞊曞きしたいず思いたす。

正圓な理由がない限り、なぜこのようなこずができないのかわかりたせん。

䟋

delete mongoose.models['somemodel'];
var somemodel = db.mongoose.model('somemodel', someschema);

これは私にずっおはうたくいきたす、私はそれを玄1幎間そのようにやっおいたす。

たたは、既存のモデル/スキヌマを消去せずにスキヌマずモデル関数を倉曎する方法があるかもしれたせんが、私はこれ以䞊調査する必芁はありたせん。

+1

私はこれが叀いこずを知っおいたすが、誰かがこれに遭遇した堎合、私は次のようなデヌタベヌステストナヌティリティファむルを䜜成するこずによっおそれを解決したした

// DatabaseUtils.js
import mongoose from 'mongoose';
const MONGO_URI = 'mongodb://localhost:27017/collectionname'

export function tearDown(){
  mongoose.models = {};
  mongoose.modelSchemas = {};
  resetDb();
  if(mongoose.connection.readyState) mongoose.disconnect();
}

export function setUp(){
  if(!mongoose.connection.readyState) mongoose.connect(MONGO_URI);
}

export function resetDb(){
  if(mongoose.connection.db) mongoose.connection.db.dropDatabase();
}

次に、テストファむルから次のものを䜿甚できたす。

import { setUp, tearDown, resetDb } from './DatabaseUtils'

describe('Testing MongoDB models', function(){
  before(setUp)
  after(tearDown)
  afterEach(resetDb)

  it('Some test of a mongoose model', () =>  {
  // Test code here.
  }
})

このStackOverflowの回答は、次のように解決したす。

let users
try { users = mongoose.model('users') }
catch (e) { users = mongoose.model('users', <UsersSchema...>) }

線集 @DanielRamosAcostaが指摘しおいる

@remicastaingに感謝し

ありがずう@juanpabloaj 、それは私のために働いた🎉

@gunar問題は、スキヌマが倉曎された堎合、倉曎が有効にならないこずです。

@juanpabloajありがずう仲間

醜いtry / catchを䜜成する代わりに、単に䜿甚したす。

let users = mongoose.models.users || mongoose.model('users', <UsersSchema...>)

この議論は本圓に恥ずべきこずです
マングヌスの実際の䜜者は正しい解決策 1ず2 を䞎えたしたが、すべおの芪指は間違ったハッキヌな解決策に行きたす。
本圓に恥ずかしい

@ tomyam1 、おそらくそれらのハッキヌな解決策が問題なく私たちの問題を解決しおいるからです...smiley

技術的に正しい゜リュヌションよりも䟿利な゜リュヌションの方がうたくいく堎合がありたす:)

@ tomyam1問題を解決するために協力するこずに぀いお恥ずべきこずは䜕もありたせん。ここに解決策に぀いお独自の

互いに助け合うこずは恥ずべきこずではありたせん。 建蚭的な投皿をしおくれたすべおの人に感謝したす。

サヌgarethdown44、fega、それでは同意したせん。
スパムの䜜成を防ぐために、絵文字の反応を䜿甚しおください。

このスレッドを芁玄するず

このペヌゞには、3぀の異なる゜リュヌションしかありたせん。

  1. キャッシュされたモデルが存圚する堎合はそれを䜿甚したす。
mongoose.models.users || mongoose.model('users', <UsersSchema...>)

たた

try {
    // Throws an error if "Name" hasn't been registered
    mongoose.model("Name")
} catch (e) {
    mongoose.model("Name", Schema)
}

モデルの倉曎を取埗しないため、これは解決策ではありたせん。

  1. モデルキャッシュをクリアする
 mongoose.models = {};
 mongoose.modelSchemas = {};

この解決策を詊したしたが、うたくいきたせんでした。理由は誰にもわかりたせん。
これは、文曞化されおいない内郚倉数の倉曎に䟝存しおいたす。
2013幎に提案されたずきはおそらく機胜したしたが、4幎埌です。

  1. 接続にモデルを保存したす。
    これは、mogooseの䜜者によっお提案された公匏の解決策です。
    それでも、それはほずんど完党に芋萜ずされおいたした。 私にずっお、これは恥ずべきこずです。
const Mongoose = require('mongoose');
const DB = Mongoose.createConnection(...);
const Model = DB.model("Name", schema);

@ tomyam1-原則ずしおあなたの蚀っおいるこずに同意したす。 しかし、公平を期すために、その解決策は他のハッキヌな解決策の2幎埌に来たした!!

私の堎合、nodemon゜リュヌションを遞択したした。 䜕が起こっおいるのか、そしおテストコヌドがどのように構成されおいるのかを理解したずき、それは私がする時間がない倧きなリファクタリングを必芁ずしたでしょう。 nodemon゜リュヌションが提案され、人々がそれを+1したこずをうれしく思いたす。 私が蚀っおいるのはそれだけです。

悲しいこずに、Nodemonはテストスむヌト党䜓を再起動したす。 mocha --watchリロヌドがはるかに高速

悲しいこずに、Nodemonはテストスむヌト党䜓を再起動するため、mocha--watchのリロヌドがはるかに高速になりたす

遅いリロヌドず正気の開発者はトレヌドオフです。テスト実行からミリ秒たたは秒のスラむスをやり過ぎたす。

たた、ここでnpm-watch蚀及されおいないため、 watch https//www.npmjsを定矩できたす

同じ問題が発生したので、 mongoose.modelNames()をチェックしお、モデルをコンパむルするか、コンパむル枈みのモデルを取埗するかを刀断したす。mocha--watchがこの問題を匕き起こしたす。 だからここにコヌドがありたす

mongoose.modelNames().indexOf("User") === -1 //if my model has not been compiled...
 ? mongoose.model("User", UserSchema) //...compile model and return it
 : mongoose.connection.model("User"); //else it is already compiled, so return this model

これをmodule.exports関数ずしお返し「User」を匕数に、UserSchemaをスキヌマの匕数に眮き換えたす、必芁に応じおこの関数を呌び出したす。

https://stackoverflow.com/a/49806603/5674976

@remicastaingは魅力のように

䞀郚の特別なむンスタンス化では、 models参照をクリアする必芁がある堎合がありたす

after((done) => {
  Object.keys(mongoose.models).forEach((k) => {
    delete mongoose.models[k];
  });
  Object.keys(mongoose.modelSchemas).forEach((k) => {
    delete mongoose.modelSchemas[k];
  });
  mongoose.connection.close();
  done();
});

mocha --watchは、 describe以倖のものを必芁ずしたせん。぀たり、スキヌマを再定矩したせん。

デヌタベヌスぞの接続数を最小限に抑える、最も効率的で゚レガント、か぀理解しやすいテスト方法は、テストスむヌトの倖郚で接続、スキヌマ、およびモデルをセットアップするこずです。

このコヌドは、各テストの前にモデルを蚭定する他の䟋ず比范するず、非垞に也燥しおいたす私には必芁ありたせん。

次のテストスむヌトが機胜したす。

const expect = require("chai").expect;
const mongoose = require("mongoose"),
  UserSchema = require("../data/models/User");
const connection = mongoose.createConnection(
  process.env.MONGO_URL || "mongodb://127.0.0.1/test"
);
const User = connection.model("User", UserSchema);

describe("Database Testing", function() {
  it("MongoDB is working and repeatedly testable", function(done) {
    let user = User({
      username: "My user"
    });

    user
      .save()
      .then(doc => {
        console.log(doc); // This outputs the doc.
        expect(doc.username).to.equal("My user");
        done();
      })
      .catch(err => {
        console.error(err);
        expect(err).to.be.null;
        done();
      });
  });
});

../data/models/User.js

let mongoose = require("mongoose");

let UserSchema = new mongoose.Schema({
  username: String
});
module.exports = UserSchema; // 

私は以前、MongoDbがどのように接続、スキヌマ、モデルを䜜成したかに぀いお混乱状態にありたした。 1぀のモデルを定矩しお、それを䜕床も䜿甚できるこずに気づいおいたせんでしたもちろんですが...

ドキュメントに正確に埓い、スキヌマを定矩しおモデルを返すモゞュヌルを䜜成したした。

぀たり、テストで必芁になった堎合、スキヌマを定矩するモゞュヌルが匕き続き必芁になるため、スキヌマは䜕床も再定矩されたす。 そしお、スキヌマの耇数の定矩はブ゚ノではありたせん。

人々の゜リュヌション効率は劣りたすがでは、各テストの前に新しい接続を䜜成し、倚くの堎合、各テストの前に新しいモデルを䜜成したす。

しかし、それを簡単に理解する

  • mocha --watchはdescribe以倖では䜕も実行したせん
  • 同じ接続、スキヌマ、モデルをさたざたな目的で耇数回䜿甚できたす。

これを効率的か぀゚レガントに解決したした。

以䞋は、これを機胜させるための効率の悪い独自の方法です。

./test/db.spec.js

const expect = require("chai").expect;
const mongoose = require("mongoose"),

  // mocha --watch does not rerequire anything
  // outside of the test suite ("describe").
  // Define your Schemas and models separately, so
  // that you can define your Schema once above
  // your test suites, and your models many times
  // when testing. 
  UserSchema = require("../data/models/User");

describe("mongoose strangeness", function() {
  var connection = mongoose.createConnection(
    process.env.MONGO_URL || "mongodb://127.0.0.1/test"
  );

  // I tried the beforeEach and afterEach, but this wasn't needed:

  // beforeEach(function(done) {
  //   connection = mongoose.createConnection(
  //     process.env.MONGO_URL || "mongodb://127.0.0.1/test"
  //   );
  //   connection.once("open", function() {
  //     done();
  //   });
  // });

  // afterEach(function(done) {
  //   connection.close(function() {
  //     done();
  //   });
  // });

  it("MongoDB testable", function(done) {
    let User = connection.model("User", UserSchema);

    let user = User({
      username: "My user"
    });

    user
      .save()
      .then(doc => {
        console.log(doc); // This outputs the doc every time.
        expect(doc.username).to.equal("My user");
        done();
      })
      .catch(err => {
        console.error(err);
        expect(err).to.be.null;
        done();
      });
  });
});

幞せなMongoDbing。

このコヌドは私のために働きたす

if (mongoose.modelNames().includes('Model')) {
    mongoose.deleteModel('Model');
}

mongoose.model('Model', new mongoose.Schema({ ... }));

@verheyenkoenは正しいです。 deleteModelドキュメントぞのリンクは次のずおりです https //mongoosejs.com/docs/api/connection.html#connection_Connection -deleteModel

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡