TypeError: Невозможно прочитать свойство drop из неопределенного - PullRequest
0 голосов
/ 11 октября 2018

Я делаю тестирование мокко.Я должен подключиться к MongoDB в функции before, и мне нужно удалить документы в коллекции после функции.

before("authenticate user", async () => {
        mongoose.connect('mongodb://localhost:27017/mo-identity')
        db = mongoose.connection;
        db.once('open', function() {
            console.log('We are connected to test `enter code here`database!')
        })
        .on('error', ()=>{console.error.bind(console, 'connection error')})
        })

    after(()=>{
        db.User.drop()
    })

Выше мой код.user это коллекция.При выполнении этого кода я получаю эту ошибку TypeError: Cannot read property 'drop' of undefined.Помоги мне эту ошибку

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Как сказал @ drinchev , вы можете удалить все документы, выполнив следующее:

Model.remove({}, function(err) { 
    console.log('collection removed') 
});

В вашем случае:

after(()=>{
    db.User.remove({}, (err) => {
      if (err) throw err;
    });
})

Надеюсь, это поможет.

0 голосов
/ 11 октября 2018

Я боюсь, что вы не можете удалить коллекцию следующим образом:

db.User.drop()

Если вы хотите удалить коллекцию, вы должны сделать что-то вроде этого: mongoose.connection.db.dropCollection('User', function(err, result) {...});

...