Javascript node.js群集客户端能否在分叉环境中接收深层对象或数组?
我正试图传递一组深部对象,如下所示:Javascript node.js群集客户端能否在分叉环境中接收深层对象或数组?,javascript,node.js,fork,Javascript,Node.js,Fork,我正试图传递一组深部对象,如下所示: data = [ { "name": "foo", "data": [ { "id" : 1, "type" : "A", } ] }, { "name": "bar", "data": [ {
data = [
{
"name": "foo",
"data": [
{
"id" : 1,
"type" : "A",
}
]
},
{
"name": "bar",
"data": [
{
"id" : 2,
"type" : "B",
}
]
},
];
到nodejs中的分叉集群客户机,如下所示
cluster.fork({"stuff": data})
但是在worker中,当我console.dir()调用它时,对象以字符串的形式到达。
“[对象],[对象]”
美国
cluster.fork([env])
- 要添加到辅助进程环境的环境对象键/值对
- 返回工作对象
谢谢。虽然它没有明确说明这一点,但通常(特别是在启动新流程的上下文中;请参阅另一个示例)使用
env
来设置环境变量
如果您不熟悉,环境变量是UNIX中的键/值对概念(其中键和值是字符串),通常由派生进程继承(尽管有时会更改)。谢谢,我熟悉UNIX环境变量,并且知道它们是键/值对。我已经忘记或没有想到这些是环境变量,使其进入新流程(现在完全有意义)。我还希望node.js能神奇地为我添加超级有趣的惊人之处,并传递复杂的结构,这样我就不必处理它了。唉。。。恐怕我必须这么做。@crempp如果您的数据足够简单,您可以将其转换为JSON字符串,然后在子进程中对其进行解析。这是一个好主意,我没有想到这一点。目前我的数据很简单,这是一个很好的解决方案。不过,我预计我的数据在不久的将来会变得更加复杂。在分叉时,您可能无法立即传递数据,但您仍然可以通过
worker.send
使用进程间消息传递来发送JS对象的副本。@loganfsmyth,我将尝试worker.send()。我认为那将是最好的方法。谢谢