Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript node.js群集客户端能否在分叉环境中接收深层对象或数组?_Javascript_Node.js_Fork - Fatal编程技术网

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])

  • 要添加到辅助进程环境的环境对象键/值对
  • 返回工作对象
我怀疑这意味着cluster.fork只能接受单级对象,而我要传递的深层对象正在被强制转换。这是有道理的,但我似乎无法证实这是真的

我的问题是:cluster.fork只能接受单级对象,不管我是否正确,是否有人能给我指出一个说明它的引用


谢谢。

虽然它没有明确说明这一点,但通常(特别是在启动新流程的上下文中;请参阅另一个示例)使用
env
来设置环境变量


如果您不熟悉,环境变量是UNIX中的键/值对概念(其中键和值是字符串),通常由派生进程继承(尽管有时会更改)。

谢谢,我熟悉UNIX环境变量,并且知道它们是键/值对。我已经忘记或没有想到这些是环境变量,使其进入新流程(现在完全有意义)。我还希望node.js能神奇地为我添加超级有趣的惊人之处,并传递复杂的结构,这样我就不必处理它了。唉。。。恐怕我必须这么做。@crempp如果您的数据足够简单,您可以将其转换为JSON字符串,然后在子进程中对其进行解析。这是一个好主意,我没有想到这一点。目前我的数据很简单,这是一个很好的解决方案。不过,我预计我的数据在不久的将来会变得更加复杂。在分叉时,您可能无法立即传递数据,但您仍然可以通过
worker.send
使用进程间消息传递来发送JS对象的副本。@loganfsmyth,我将尝试worker.send()。我认为那将是最好的方法。谢谢