Javascript Express API测试-MongoError:拓扑已破坏
我在node/expressapi中有一组测试。测试工作正常,但我在测试后出现了一个奇怪的错误 “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
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');
});
});
});
});
可能重复的