Я пытаюсь заполнить свою коллекцию некоторыми данными перед вызовом каждого теста в моем блоке description (). Однако я постоянно получаю эту ошибку:
(node:4736) UnhandledPromiseRejectionWarning: MongoParseError: URI malformed, cannot be parsed
at parseConnectionString (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mongodb\lib\core\uri_parser.js:542:21)
at connect (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mongodb\lib\operations\connect.js:272:3)
at cb (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mongodb\lib\mongo_client.js:215:5)
at maybePromise (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mongodb\lib\utils.js:719:3)
at MongoClient.connect (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mongodb\lib\mongo_client.js:211:10)
at new MongoClient.connect (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mongodb\lib\mongo_client.js:421:22)
at Object.<anonymous> (C:\Users\Elvo\Desktop\node-todo-api\server\tests\server.test.js:10:10)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\mocha.js:314:36
at Array.forEach (<anonymous>)
at Mocha.loadFiles (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\mocha.js:311:14)
at C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\mocha.js:347:12
at new Promise (<anonymous>)
at Mocha.loadFilesAsync (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\mocha.js:346:12)
at singleRun (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\cli\run-helpers.js:107:15)
at exports.runMocha (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\cli\run-helpers.js:144:11)
at Object.exports.handler (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\cli\run.js:306:11)
at Object.runCommand (C:\Users\Elvo\Desktop\node-todo-api\node_modules\yargs\lib\command.js:242:26)
at Object.parseArgs [as _parseArgs] (C:\Users\Elvo\Desktop\node-todo-api\node_modules\yargs\yargs.js:1096:28)
at Object.parse (C:\Users\Elvo\Desktop\node-todo-api\node_modules\yargs\yargs.js:575:25)
at Object.exports.main (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\cli\cli.js:68:6)
at Object.<anonymous> (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\bin\mocha:133:29)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Function.Module.runMain (module.js:694:10)
at startup (bootstrap_node.js:204:16)
at bootstrap_node.js:625:3
(node:4736) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:4736) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
(node:4736) UnhandledPromiseRejectionWarning: MongoParseError: URI malformed, cannot be parsed
at parseConnectionString (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mongodb\lib\core\uri_parser.js:542:21)
at connect (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mongodb\lib\operations\connect.js:272:3)
at cb (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mongodb\lib\mongo_client.js:215:5)
at maybePromise (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mongodb\lib\utils.js:719:3)
at MongoClient.connect (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mongodb\lib\mongo_client.js:211:10)
at new MongoClient.connect (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mongodb\lib\mongo_client.js:421:22)
at Object.<anonymous> (C:\Users\Elvo\Desktop\node-todo-api\server\tests\server.test.js:13:10)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\mocha.js:314:36
at Array.forEach (<anonymous>)
at Mocha.loadFiles (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\mocha.js:311:14)
at C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\mocha.js:347:12
at new Promise (<anonymous>)
at Mocha.loadFilesAsync (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\mocha.js:346:12)
at singleRun (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\cli\run-helpers.js:107:15)
at exports.runMocha (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\cli\run-helpers.js:144:11)
at Object.exports.handler (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\cli\run.js:306:11)
at Object.runCommand (C:\Users\Elvo\Desktop\node-todo-api\node_modules\yargs\lib\command.js:242:26)
at Object.parseArgs [as _parseArgs] (C:\Users\Elvo\Desktop\node-todo-api\node_modules\yargs\yargs.js:1096:28)
at Object.parse (C:\Users\Elvo\Desktop\node-todo-api\node_modules\yargs\yargs.js:575:25)
at Object.exports.main (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\cli\cli.js:68:6)
at Object.<anonymous> (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\bin\mocha:133:29)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Function.Module.runMain (module.js:694:10)
at startup (bootstrap_node.js:204:16)
at bootstrap_node.js:625:3
(node:4736) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
POST /todos
1) "before each" hook for "should create new todo"
0 passing (149ms)
1 failing
1) "before each" hook for "should create new todo":
Todo validation failed: _id: Cast to ObjectID failed for value "Promise {
<rejected> { MongoParseError: URI malformed, cannot be parsed
at parseConnectionString (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mongodb\lib\core\uri_parser.js:542:21)
at connect (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mongodb\lib\operations\connect.js:272:3)
at cb (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mongodb\lib\mongo_client.js:215:5)
at maybePromise (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mongodb\lib\utils.js:719:3)
at MongoClient.connect (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mongodb\lib\mongo_client.js:211:10)
at new MongoClient.connect (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mongodb\lib\mongo_client.js:421:22)
at Object.<anonymous> (C:\Users\Elvo\Desktop\node-todo-api\server\tests\server.test.js:10:10)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\mocha.js:314:36
at Array.forEach (<anonymous>)
at Mocha.loadFiles (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\mocha.js:311:14)
at C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\mocha.js:347:12
at new Promise (<anonymous>)
at Mocha.loadFilesAsync (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\mocha.js:346:12)
at singleRun (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\cli\run-helpers.js:107:15)
at exports.runMocha (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\cli\run-helpers.js:144:11)
at Object.exports.handler (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\cli\run.js:306:11)
at Object.runCommand (C:\Users\Elvo\Desktop\node-todo-api\node_modules\yargs\lib\command.js:242:26)
at Object.parseArgs [as _parseArgs] (C:\Users\Elvo\Desktop\node-todo-api\node_modules\yargs\yargs.js:1096:28)
at Object.parse (C:\Users\Elvo\Desktop\node-todo-api\node_modules\yargs\yargs.js:575:25)
at Object.exports.main (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\lib\cli\cli.js:68:6)
at Object.<anonymous> (C:\Users\Elvo\Desktop\node-todo-api\node_modules\mocha\bin\mocha:133:29)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Function.Module.runMain (module.js:694:10)
at startup (bootstrap_node.js:204:16)
at bootstrap_node.js:625:3
name: 'MongoParseError',
[Symbol(mongoErrorContextSymbol)]: {} } }" at path "_id"
ValidationError: Todo validation failed: _id: Cast to ObjectID failed for value "Promise {
<rejected> { MongoParseError: URI malformed, cannot be parsed
at parseConnectionString (node_modules\mongodb\lib\core\uri_parser.js:542:21)
at connect (node_modules\mongodb\lib\operations\connect.js:272:3)
at cb (node_modules\mongodb\lib\mongo_client.js:215:5)
at maybePromise (node_modules\mongodb\lib\utils.js:719:3)
at MongoClient.connect (node_modules\mongodb\lib\mongo_client.js:211:10)
at new MongoClient.connect (node_modules\mongodb\lib\mongo_client.js:421:22)
at Object.<anonymous> (server\tests\server.test.js:10:10)
at require (internal/module.js:11:18)
at Array.forEach (<anonymous>)
at new Promise (<anonymous>)
at Object.runCommand (node_modules\yargs\lib\command.js:242:26)
at Object.parseArgs [as _parseArgs] (node_modules\yargs\yargs.js:1096:28)
at Object.parse (node_modules\yargs\yargs.js:575:25)
at startup (bootstrap_node.js:204:16)
at bootstrap_node.js:625:3
name: 'MongoParseError',
[Symbol(mongoErrorContextSymbol)]: {} } }" at path "_id"
at new ValidationError (node_modules\mongoose\lib\error\validation.js:31:11)
at model.Document.invalidate (node_modules\mongoose\lib\document.js:2552:32)
at model.$set (node_modules\mongoose\lib\document.js:1233:12)
at model._handleIndex (node_modules\mongoose\lib\document.js:971:14)
at model.$set (node_modules\mongoose\lib\document.js:913:22)
at model.Document (node_modules\mongoose\lib\document.js:135:12)
at model.Model (node_modules\mongoose\lib\model.js:104:12)
at new model (node_modules\mongoose\lib\model.js:4656:15)
at Array.callback (node_modules\mongoose\lib\model.js:3302:17)
at _start (node_modules\mongoose\lib\helpers\parallelLimit.js:27:37)
at parallelLimit (node_modules\mongoose\lib\helpers\parallelLimit.js:23:5)
at Function.Model.$__insertMany (node_modules\mongoose\lib\model.js:3332:3)
at process.nextTick (node_modules\kareem\index.js:369:33)
at _combinedTickCallback (internal/process/next_tick.js:132:7)
at process._tickCallback (internal/process/next_tick.js:181:9)
Я понял, что проблема с моим beforeEach. Я попытался создать цепочку catch (), но она все равно возвращает ту же ошибку. Вот мой beforeEach ():
beforeEach((done)=>{
Todo.deleteMany({}).then(()=>{
return Todo.insertMany(todos);
}).then(() => done());
});
Я ценю вашу помощь. Просто изучаю Node. Я использую мокко и супер-тест