Javascript Express API测试-MongoError:拓扑已破坏

Javascript Express API测试-MongoError:拓扑已破坏,javascript,express,chai,Javascript,Express,Chai,我在node/expressapi中有一组测试。测试工作正常,但我在测试后出现了一个奇怪的错误 “MongoError:拓扑已被破坏” 我不确定是否有问题,因为测试通过了。但我想消除这个错误 下面是完整的错误: Your API is listening on port 8080 index router / GET ✓ should return with 400 and error message 1 passing (40ms) /Users/johns

我在node/expressapi中有一组测试。测试工作正常,但我在测试后出现了一个奇怪的错误

“MongoError:拓扑已被破坏”

我不确定是否有问题,因为测试通过了。但我想消除这个错误

下面是完整的错误:

Your API is listening on port 8080
  index router
    / GET
      ✓ should return with 400 and error message


  1 passing (40ms)


/Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongoose/lib/utils.js:440
        throw err;
        ^
MongoError: topology was destroyed
    at ensureIndex (/Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongodb/lib/db.js:1123:21)
    at executeOperation (/Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongodb/lib/utils.js:420:24)
    at Db.ensureIndex (/Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongodb/lib/db.js:1105:10)
    at ensureIndex (/Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongodb/lib/collection.js:1761:13)
    at executeOperation (/Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongodb/lib/utils.js:420:24)
    at Collection.ensureIndex (/Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongodb/lib/collection.js:1757:10)
    at NativeCollection.(anonymous function) [as ensureIndex] (/Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js:142:28)
    at NativeCollection.create (/Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongoose/lib/model.js:1107:33)
    at NativeCollection.Collection.doQueue (/Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongoose/lib/collection.js:127:24)
    at /Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongoose/lib/collection.js:88:11
    at _combinedTickCallback (internal/process/next_tick.js:131:7)
    at process._tickCallback (internal/process/next_tick.js:180:9)
'user strict'; 

const {TEST_DATABASE_URL} = require('../config'); 
const {dbConnect, dbDisconnect} = require('../db-mongoose'); 
const chai = require('chai'); 
const chaiHttp = require('chai-http'); 
const { app } = require('../index'); 

// Set NODE_ENV to `test` to disable http layer logs
// You can do this in the command line, but this is cross-platform
process.env.NODE_ENV = 'test';

// Clear the console before each run
process.stdout.write('\x1Bc\n');

const expect = chai.expect; 
chai.use(chaiHttp); 

describe('index router', function() {
    before(function() {
        return dbConnect(TEST_DATABASE_URL); 
    }); 

    after(function() {
        return dbDisconnect(); 
    });

    describe('/ GET', function() {
        it('should return with 400 and error message', function() {
            return chai.request(app)
            .get('/')
            .then(function(res) {
                expect(res).to.have.status(400); 
                expect(res).to.be.json; 
                expect(res.body.message).to.equal('Route not found'); 
            }); 
        }); 
    }); 
}); 
这是我的测试:

Your API is listening on port 8080
  index router
    / GET
      ✓ should return with 400 and error message


  1 passing (40ms)


/Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongoose/lib/utils.js:440
        throw err;
        ^
MongoError: topology was destroyed
    at ensureIndex (/Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongodb/lib/db.js:1123:21)
    at executeOperation (/Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongodb/lib/utils.js:420:24)
    at Db.ensureIndex (/Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongodb/lib/db.js:1105:10)
    at ensureIndex (/Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongodb/lib/collection.js:1761:13)
    at executeOperation (/Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongodb/lib/utils.js:420:24)
    at Collection.ensureIndex (/Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongodb/lib/collection.js:1757:10)
    at NativeCollection.(anonymous function) [as ensureIndex] (/Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js:142:28)
    at NativeCollection.create (/Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongoose/lib/model.js:1107:33)
    at NativeCollection.Collection.doQueue (/Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongoose/lib/collection.js:127:24)
    at /Users/johnseabolt/Desktop/code/JAVASCRIPT/KEEPERS/taco_crawl/taco_crawl_api/node_modules/mongoose/lib/collection.js:88:11
    at _combinedTickCallback (internal/process/next_tick.js:131:7)
    at process._tickCallback (internal/process/next_tick.js:180:9)
'user strict'; 

const {TEST_DATABASE_URL} = require('../config'); 
const {dbConnect, dbDisconnect} = require('../db-mongoose'); 
const chai = require('chai'); 
const chaiHttp = require('chai-http'); 
const { app } = require('../index'); 

// Set NODE_ENV to `test` to disable http layer logs
// You can do this in the command line, but this is cross-platform
process.env.NODE_ENV = 'test';

// Clear the console before each run
process.stdout.write('\x1Bc\n');

const expect = chai.expect; 
chai.use(chaiHttp); 

describe('index router', function() {
    before(function() {
        return dbConnect(TEST_DATABASE_URL); 
    }); 

    after(function() {
        return dbDisconnect(); 
    });

    describe('/ GET', function() {
        it('should return with 400 and error message', function() {
            return chai.request(app)
            .get('/')
            .then(function(res) {
                expect(res).to.have.status(400); 
                expect(res).to.be.json; 
                expect(res.body.message).to.equal('Route not found'); 
            }); 
        }); 
    }); 
}); 
可能重复的