从Express get方法发送回调变量到node.js中的分支进程



我试图将回调变量从app.get()发送到fork进程,但当我这样做时,我得到以下错误:

TypeError: conversion circular structure to JSON

这样做的目的是,我可以有一个主节点的web服务器,并把新的应用程序到服务器,而不必重新创建一个新的服务器。下面是一些导致问题的缩写代码:

app.get('/apps/*', function(req, res) {
    req.session.myPath = req.route.params;
    var progname = new RegExp("(.*?)\/", "g").exec(req.session.myPath[0])[1];
    if (applications.indexOf(progname) != -1) {
        var appInstance = cp.fork('./apps/'+progname+'/main.js');
        appInstance.send({'_req':req,'_res':res});  <-- Error here
    }
});

是否有一种方法将这些变量传递给fork的main.js进程,以允许该进程处理页面请求,而不是将其包含在app.get回调函数中的传统方式?

是否有一种方法将这些变量传递给fork的main.js进程,以允许该进程处理页面请求,而不是将其包含在app.get回调函数中的传统方式?

如果是子进程则不需要。这些是特定于进程的资源,因此您不能将它们传递给不同的进程。但是,express有挂载子应用程序的概念,所以你可以实现一堆独立的express应用程序,然后将它们全部挂载到一个包含应用程序中。否则你的子应用将需要提供一个HTTP接口,你可以代理,但这将通过HTTP来完成,而不是通过尝试直接序列化reqres对象到JSON数据。

最新更新