Node.js async.forEach:无法读取未定义的属性“值”

2024-01-03

我有一种感觉,我犯了一个明显的错误,但找不到它。

我得到的错误是:

node_modules/async/lib/async.js:194
        iterator(x.value, function (err, v) {
                  ^
TypeError: Cannot read property 'value' of undefined

这是我的代码:

this.createProfiles = function (serviceUserid, serviceName, newProfiles, type, callback) {
    var userids = [];
    function iterator (i, callback) {
        var profile = newProfiles[i];
        if (typeof profile == 'undefined') {
            var userid = i;
            profile = {};
        } else {
            if (profile.userid) {
                var userid = profile.userid;
            } else if (profile.id) {
                var userid = profile.id;
            }               
        }
        userid = String(userid);
        createProfile(userid, serviceName, profile, callback);
        userids.push(userid);
    }
    async.forEach(newProfiles, iterator, function(){
        createRelation(serviceUserid, serviceName, userids, type, callback);
    });
}

这是完整的堆栈跟踪:

node_modules/async/lib/async.js:194
        iterator(x.value, function (err, v) {
                  ^
TypeError: Cannot read property 'value' of undefined
at /Users/jacob/Sites/Konfect.node/node_modules/async/lib/async.js:194:23
at /Users/jacob/Sites/Konfect.node/node_modules/async/lib/async.js:118:13
at /Users/jacob/Sites/Konfect.node/node_modules/async/lib/async.js:129:25
at /Users/jacob/Sites/Konfect.node/node_modules/async/lib/async.js:196:17
at /Users/jacob/Sites/Konfect.node/node_modules/async/lib/async.js:499:34
at /Users/jacob/Sites/Konfect.node/models/profile.js:85:8
at [object Object].<anonymous> (/Users/jacob/Sites/Konfect.node/node_modules/mongodb/lib/mongodb/collection.js:416:9)
at [object Object].emit (events.js:67:17)
at [object Object].<anonymous> (/Users/jacob/Sites/Konfect.node/node_modules/mongodb/lib/mongodb/connections/server.js:102:16)
at [object Object].emit (events.js:64:17)

是的,我用async https://github.com/caolan/async.

有任何想法吗?


异步需要一个非稀疏数组,但我猜测,根据您使用“i”作为用户 ID,newProfiles 是稀疏填充的并由用户 ID 索引。

此外,迭代器的第一个参数是数组中的实际值(“profile”),而不是索引(“i”)。另外,在将“callback”传递到 createProfile 后调用“userids.push(userid)”也是不好的形式。你应该这样做。

createProfile(userid, serviceName, profile, function() {
    userids.push(userid);
    callback();
});

总的来说,有一些可能的方法可以解决稀疏问题。例如,您可以尝试使用 async.parallel,并传递按键索引的对象。

但首先我想问,使用稀疏性来指示创建新配置文件不会导致大量用户 ID 冲突吗?一旦您在第一个项目稀疏的情况下调用 createProfiles 两次,它就会尝试创建 userid = 0 的第二个配置文件。通常,当您想要创建新内容时,实际上会生成“createProfile”并返回新 ID。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.js async.forEach:无法读取未定义的属性“值” 的相关文章

  • Node.js fast-csv 同步读取文件并返回数组

    我正在尝试读取 csv 文件并使用以下代码将其分配给数组 const fs require fs const csv require fast csv parse let data csv parseFile downloads aggio
  • 有没有办法修复 package-lock.json lockfileVersion 以便 npm 使用特定格式?

    如果两个不同的开发人员在最初使用package lock json lockfileVersion 1 当使用 npm 7x 的开发人员安装新软件包时 似乎package lock json是使用重新创建的 lockfileVersion
  • Webrtc 重新协商,Firefox 到 Chrome,反之亦然,不更新流

    我已经成功建立对等连接 但我无法在 Chrome Firefox 上进行正确的重新协商 我已按照重新协商的步骤 将相机 视频更改为屏幕共享时 更新流 曲目 添加 删除 Changer 这击中了需要谈判 改变者 创建报价 更改者 设置本地描述
  • Nodejs - 如何使函数只发生一次?

    我利用 socket io 和express 框架制作了一个简单的聊天应用程序 下面是部分代码 var app express createServer var socket io listen app var store new expr
  • 使用 Mongoose 将数组(“标签”)保存到 MongoDB

    我正在玩 Mongoose 但在保存到数组时遇到问题 例如 我在页面上有一个以逗号分隔的输入字段tags 我从 req body tags 中获取这些内容 删除空格 然后用逗号分隔它们以获得标签数组 现在 如何将该数组保存回我的数据库 我猜
  • Express MongoDB find() 基于 _id 字段

    因此 在我的 Express 应用程序中 我尝试根据我的 id 字段查找 请参阅下面我的 MongoDB 记录 id oid 58c2a5bdf36d281631b3714a title EntertheBadJah subTitle Lo
  • 如何模拟 typeORM 的 getCustomRepository

    我想对一个在其构造函数中使用 getCustomRepository 的类进行单元测试 但我只是想不出一种简单的方法来模拟它 这是我的班级代码 import getCustomRepository from typeorm export c
  • 如何使用startsWith过滤并获取每个对象键的值?

    我试图通过获取每个键来过滤对象checkpoint并输出其值 目前 我只能输出键而不是值 下面 我有一个简单的对象 我正在使用过滤器和startsWith 我怎样才能得到这些值呢 var data practicals 0 checkpoi
  • Socket.io 最佳编码实践

    我正在开发一个 Node js 应用程序 它使用 Socket io 来处理实时通信 我的代码充满了 On 和 Emit 函数 我也使用房间功能 我的应用程序如下所示 var server require http Server var i
  • 有没有办法防止 neDB 集合数组中的条目重复?

    var addNewUser function id chatId db update id id push users chatId function err numAffected code after the record is up
  • 如何正确配置meteor以与节点文件上传模块“multer”一起使用

    我刚从流星开始 我找到并添加了 multer 包 meteor add pfafman multer 现在 我想知道如何配置meteor的服务器端来使用 在我的普通节点应用程序中 我像这样使用它 app use multer dest up
  • 如何找出NPX运行的是哪个文件?

    当你跑步的时候 说 npx webpack在终端中 NPX 找到一个webpack打包某处并运行它 如何确定NXP运行的二进制文件的确切位置 我正在寻找类似的工具which https en wikipedia org wiki Which
  • 快速解析 req.body 中的 multipart/form-data post

    我正在尝试使用 Chrome 和 Firefox 浏览器上的 jQuery Ajax FormData 对象上传文件 我用来执行此操作的代码如下 var formData new FormData formData append image
  • 获取块上的 execFile stdOut

    我正在尝试使用 execFile 并记录提供任务完成百分比的 stdOut 但回调函数 var child require child process child execFile path to the file options func
  • AWS Lambda SNS 发送主题两次

    TL DR 编写 lambda 函数来执行一些数据库查询 然后向某些用户组发送电子邮件 为共享歌曲的每个群组发布 SNS 消息 每个组都有自己的成员 因此有自己的一组电子邮件 每个组的 SNS 主题都会发送两次 会员收到该电子邮件两次 该应
  • Node.js 进程内存不足错误

    FATAL ERROR CALL AND RETRY 2 Allocation Failed process out of memory 我看到这个错误 但不太确定它来自哪里 我正在从事的项目有以下基本工作流程 从其他来源接收 XML 帖子
  • 使用 Node.js 捕获延迟加载页面的屏幕截图

    我正在寻找一种方法 可以在每次更改时对长网页进行屏幕截图 我想为此使用 Node js 我的问题是关于如何渲染带有图像的完整页面并将其保存到磁盘和图像文件 网页上的大多数图像都是延迟加载的 所以我想我需要先向下滚动整个页面 然后再进行屏幕截
  • Nodejs 在 Windows 上找不到已安装的模块

    我现在正在Windows上学习nodejs 使用npm cmd全局安装了几个模块 nodejs找不到已安装的模块 以玉石为例 npm install jade g Jade安装在目录中 C Program Files x86 nodejs
  • NodeJS发送POST请求时如何设置Content-Length?

    var https require https var p api username FA AA ZOHO ACTION EXPORT ZOHO OUTPUT FORMAT JSON ZOHO ERROR FORMAT JSON ZOHO
  • Node.js 和 .net 之间的命名管道通信

    我正在研究 net v4 5 2 和 Javascript node js v8 9 0 应用程序之间的进程间通信 我想为此使用 Windows 命名管道 并且仅限命名管道 对于 Javascript 应用程序 我使用的是命名管道包 v0

随机推荐

  • iPhone:cocos2d 中相机跟随玩家

    我正在用 cocos2d 制作 iPhone 游戏 我想知道如何使相机 视图遵循特定的精灵 我会使用 CCCamera 类吗 是的 CCCamera 可以工作 然而 它有一些缺点 使其不适合某些用途 相对于该精灵移动图层以及所有其他对象可能
  • 在 StructureMap 中注册一个默认实例

    我有一堂课 MyService 具有静态属性 MyService Context 代表当前上下文 特定于当前登录的用户 因此它会发生变化 我想要实现的目标 ObjectFactory Initialize x gt x For
  • 在 WPF 中,我们如何将 Duration 定义为资源?

    我在许多动画中使用了一个持续时间 0 0 0 5 并且我想仅在一个位置定义该数字 我可以将双精度定义为
  • 在 Win32 API 中绘制格式化文本的最快方法是什么?

    我正在使用普通 Win32 API 在 C 中实现一个文本编辑器 并且我正在尝试找到实现语法突出显示的最佳方法 我知道有像 scintilla 这样的现有控件 但我这样做是为了好玩 所以我想自己完成大部分工作 我还希望它又快又轻 从我到目前
  • TensorFlow 中的高效图像膨胀

    我正在寻找一种有效的实施方式形态学图像膨胀 https en wikipedia org wiki Dilation morphology 在 TensorFlow 中使用方形内核 正如 OpenCV 所示 与实际效果相比 显而易见的方法似
  • 在 React.js 应用程序中从广告合作伙伴加载外部脚本

    我想在我的 React js Web 应用程序中包含两种类型的广告 div div 还有这个广告
  • SQL Server:返回字符串过程 INITCAP

    这就是我所做的 create proc INITCAP string varchar 30 as begin SET string UPPER LEFT string 1 LOWER RIGHT string LEN string 1 en
  • 使用 bootstrap 进行分位数回归的置信区间

    我正在尝试获取线性和分位数回归的五种引导区间 我能够使用 Boot from 引导并找到线性回归的 5 个引导区间 分位数 正常 基本 学生化和 BCa car和 boot ci 来自boot 当我尝试使用 rq 对分位数回归执行相同操作时
  • 使用 Entity Framework 4 时如何返回数据读取器?

    我想使用 LINQ 和 EntityFramework 上下文定义数据库查询 但我不希望返回实体 我想要一个数据读取器 我怎样才能做到这一点 这是为了将行导出到 CSV 干杯 伊恩 如果你需要这个 你很可能正在做一些意想不到的事情 通过查询
  • 理解声明 C 字符串的两种方法[重复]

    这个问题在这里已经有答案了 几周前 我开始学习编程语言 C 我了解 HMTL CSS Javscript PHP 和基本服务器管理等 Web 技术 但 C 语言让我感到困惑 据我了解 C 语言没有字符串数据类型 只有字符数据类型 但我可能是
  • 基本 iPhone 定时器示例

    好吧 我在网上搜索过 甚至在几本书中寻找答案 因为我无法理解 NSTimer 的苹果文档 我正在尝试在同一视图上实现 2 个计时器 每个计时器都有 3 个按钮 开始 停止 重置 第一个计时器从 2 分钟开始倒计时 然后发出蜂鸣声 第二个计时
  • AWS Elastic Beanstalk - 更改 webapp 文件夹的所有者

    我已使用 AWS Elastic Beanstalk 成功创建了一个应用程序 并使用 Git 上传了该应用程序 我剩下要做的就是创建我的settings php 文件 一切都应该可以正常工作 但是 当我使用 ec2 user 用户身份通过
  • Graphviz Dot 中奇怪的边缘位置

    我有一个模块 可以自动输出 以点格式 用某种汇编语言 我的编译器的 IR 编写的函数 节点是使用 记录 形状打印的基本块 问题在于边缘采用了奇怪的路线 例如 digraph node shape record n0 label
  • Apple 智能横幅上的应用程序参数是否会在安装时传递给应用程序?

    我已经为我的应用程序实现了 Apple 智能横幅 其中包含一个应用程序参数 其中包含我希望该应用程序在我的网站上打开的 URL 我以为用户安装应用程序时就会通过 但似乎没有 步骤 用户访问页面 未安装应用程序 单击 查看 转到应用程序商店
  • 如何删除查询中的第一个单词

    如何删除 MySQL 查询中字段的第一个单词 我尝试使用 SUBSTRING INDEX 但没有结果 该字段为varchar 可以同时包含字母和数字 例子 PWS 20110804 Pos 04应该成为20110804 Pos 04 PWS
  • 如何为特定控件创建自己的自定义提示?

    我需要为特定控件 而不是整个应用程序 创建一个自定义提示窗口 具有自己的颜色和布局 提示文本本身不会连接到该特定的Hint财产控制 按照建议 我编写了一个处理程序CM HINTSHOW 如果控件有此功能 则此方法有效ShowHint Tru
  • 找出与 Elastic Beanstalk 应用程序关联的 EC2 实例?

    有没有办法从仪表板找出与我的 Elastic Beanstalk 应用程序关联的 EC2 实例 我检查了 配置 下的每个页面 但找不到有关运行该应用程序的 EC2 实例的任何信息 您无法通过 Elastic Beanstalk 仪表板查看关
  • C++ 一个带有结构数组的类,不知道我需要多大的数组

    我有一个带有字段的类like名字 年龄 学校等 我需要能够存储其他信息 例如他们旅行过的地方以及旅行的年份 我无法专门声明另一个类来保存 TravelDestination 和年份 所以我认为有一个结构体可能是最好的 这只是一个例子 str
  • Java Scanner - 将换行符读取到字符串中?

    我有一个扫描仪 它接受用户输入 直到按 ctrl d 然后是一个 while 循环 将每个单词添加到字符串中 然后打印它 但我想知道如何在字符串中包含像 n 这样的新行指示符凡是有新行的地方 Scanner sc new Scanner S
  • Node.js async.forEach:无法读取未定义的属性“值”

    我有一种感觉 我犯了一个明显的错误 但找不到它 我得到的错误是 node modules async lib async js 194 iterator x value function err v TypeError Cannot rea