Javascript TypeError:无法读取属性';名称';node.js中未定义的
您的循环中有几个问题:Javascript TypeError:无法读取属性';名称';node.js中未定义的,javascript,node.js,Javascript,Node.js,您的循环中有几个问题: D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\node_modules\mongodb\lib\utils.js:132 throw err; ^ TypeError: Cannot read property 'name' of undefined at getPaths (D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\route
D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\node_modules\mongodb\lib\utils.js:132
throw err;
^
TypeError: Cannot read property 'name' of undefined
at getPaths (D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\routes.js:124:54)
at D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\routes.js:24:4
at D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\routes.js:112:3
at result (D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\node_modules\mongodb\lib\utils.js:414:17)
at executeCallback (D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\node_modules\mongodb\lib\utils.js:406:9)
at handleCallback (D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\node_modules\mongodb\lib\utils.js:128:55)
at cursor.close (D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\node_modules\mongodb\lib\operations\cursor_ops.js:218:62)
at handleCallback (D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\node_modules\mongodb\lib\utils.js:128:55)
at completeClose (D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\node_modules\mongodb\lib\cursor.js:887:14)
at _endSession (D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\node_modules\mongodb\lib\cursor.js:898:37)
你确定不想比较它们吗?因为现在,您正在设置category.id并在函数中返回它。因此,如果
pathIds[i]
等于0,则提供给find
的函数将返回false,否则返回true。这真的是你想要的吗 您有一个循环,只打印currentCategory
的第一个值。它是在循环中修改的,所以将console.log移动到那里以查看betterI see now-第一个循环是可以的,但是在该循环之后,代码执行会变得异步。有没有一种方法可以在接下来的循环中重用currentCategory对象?您能提供更多的代码吗?与使用PathID数组和subCategory对象调用getPaths函数类似,始终存在与条件匹配的元素。这应该不是问题。如果一个类别没有任何子类别怎么办?在这种情况下,find将返回undefined,您将在下一次循环迭代中得到错误。我修复了它。谢谢!!:)循环出现问题,导致未定义的值。
D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\node_modules\mongodb\lib\utils.js:132
throw err;
^
TypeError: Cannot read property 'name' of undefined
at getPaths (D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\routes.js:124:54)
at D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\routes.js:24:4
at D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\routes.js:112:3
at result (D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\node_modules\mongodb\lib\utils.js:414:17)
at executeCallback (D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\node_modules\mongodb\lib\utils.js:406:9)
at handleCallback (D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\node_modules\mongodb\lib\utils.js:128:55)
at cursor.close (D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\node_modules\mongodb\lib\operations\cursor_ops.js:218:62)
at handleCallback (D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\node_modules\mongodb\lib\utils.js:128:55)
at completeClose (D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\node_modules\mongodb\lib\cursor.js:887:14)
at _endSession (D:\repos\onlineStore\borrislava-onlinestore\Backup\Work\node_modules\mongodb\lib\cursor.js:898:37)
for (i=0; i<pathIds.length; i++) {
pathDirs += pathIds[i];
paths[i] = {dir : pathDirs, name : currentCategory.name};
currentCategory = currentCategory.categories.find(function(category){
return category.id = pathIds[i];
});
}
return category.id = pathIds[i]