节点不打印完整的对象
我很难过
我用控制台中包含嵌套数组的另一个对象testing了这个方法,并得到了预期的结果
db_status_emitter.on("components_found", function (returned_item) { //console.log(returned_item); prun_item.type = returned_item.type; prun_item.components = returned_item.components.slice(0); switch (prun_item.type) { case "one-sided-mattress": prun_item.quantity = prun_item.total_panel_quantity; var top_panel = underscore.find(prun_item.components, function (element) { return element.component_category == "top-panel" }); var border = underscore.find(prun_item.components, function (element) { return element.component_category == "border" }); top_panel.quantity = border.quantity = prun_item.quantity; top_panel.style = "91000000"; border.style = "81000000"; break; case "two-sided-mattress": prun_item.quantity = prun_item.total_panel_quantity / 2; var top_panel = underscore.find(prun_item.components, function (element) { return element.component_category == "top-panel" }); var bottom_panel = underscore.find(prun_item.components, function (element) { return element.component_category == "bottom-panel" }); var border = underscore.find(prun_item.components, function (element) { return element.component_category == "border" }); top_panel.quantity = bottom_panel.quantity = border.quantity = prun_item.quantity; top_panel.style = "91000000"; bottom_panel.style = "92000000"; border.style = "81000000"; break; default: console.error("error with prun Schedule"); break; } console.log(prun_item); });
// 编辑 :我应该在这里添加mongoose的电话; 它和.on()函数在同一个范围内
fex_model.findOne({_id: prun_item.model}, {components: 1, type: 1, _id: 0}, function (err, returned_item){ if (err) db_status_emitter.emit("error", err) db_status_emitter.emit("components_found", returned_item); })
为什么没有一个组件显示我给它们添加的键值对呢? 这是一个输出示例
{ quilter_name: 'Panel Quilter #3', schedule_no: 55f32e4470df49a65d03cf6a, model: '3630', size: '66', total_panel_quantity: 72, type: 'two-sided-mattress', components: [ { component_category: 'top-panel', buffer_op: '120' }, { component_category: 'bottom-panel', buffer_op: '120' }, { component_category: 'border', buffer_op: '119' } ], quantity: 36 }
但应该是:
{ quilter_name: 'Panel Quilter #3', schedule_no: 55f32e4470df49a65d03cf6a, model: '3630', size: '66', total_panel_quantity: 72, type: 'two-sided-mattress', components: [ { component_category: 'top-panel', buffer_op: '120', quantity: 36, style: "91000000" }, { component_category: 'bottom-panel', buffer_op: '120', quantity: 36, style: "92000000" }, { component_category: 'border', buffer_op: '119', quantity: 36, style: "81000000" } ], quantity: 36 }
但为什么在控制台上的相同的过程工作?
>underscore.extend(extended_this_object, components_wrapper); { foo: 'bar', components: [ { a: 'findthis', b: '3', c: '4', d: 'new value' }, { a: 'notthis', b: '4', c: '5' } ] } >var foundthis2 = underscore.find(extended_this_object.components, function(element){ return element.a == 'findthis'}); >foundthis2 { a: 'findthis', b: '3', c: '4', d: 'new value' } >foundthis2.e = 'a newer value' 'a newer value' >extended_this_object; { foo: 'bar', components: [ { a: 'findthis', b: '3', c: '4', d: 'new value', e: 'a newer value' }, { a: 'notthis', b: '4', c: '5' } ] }
编辑这里是一个单一的组件键输出..我怀疑它必须做它来自mongoose…
[ '__parentArray', '__parent', '__index', '$__', 'isNew', 'errors', '_doc', '$__original_save', 'save', '_pres', '_posts', 'quantity', 'style' ]
请注意,数量和样式是属于它们自己的,我怀疑logging的属性在_doc中。
起初我以为这是一个有趣的问题,但后来我意识到这是没有意义的。 我试着做一个js文件中的各种类似的东西,并node
,但我不能复制你遇到的。
日志消息不是来自console.log
,或者在重新启动服务器后无法复制此问题(V8中出现了一些问题?)。
你有没有尝试改变日志arugment像prun_item.components[0].quantity
?
或者你的原始代码比这更复杂,修改_.find
返回的对象不会修改你的console.log
对象,这是唯一合乎逻辑的解释。
- 限制NodeJS setImmediate
- 从节点事件process.stdin.on(“data”)收到的数据中删除新行字符
- Node.js将parameter passing给express.js / passport.js中的require函数? 理解为什么?
- `server.listen()`如何保持节点程序运行
- 测量Node.js通过net.server生成的总入站/出站stream量
- client.query在node.js中的node-postgres库中没有响应
- ExpressJS中的error handling
- 我应该打扰在node.js中清理数组吗?
- 只有在开发者机器上需要npm包的types定义吗?