最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

Node js Google App Engine中的child

IT培训 admin 3浏览 0评论

Node js Google App Engine中的child

我有一个在本地主机上工作的Node Express服务器。它使用child_process运行C ++独立可执行文件。

使用child_process的代码如下(应用程序创建output.txt):

app.post('/generate', async function(req, res)
{
    var input1 = req.body.input1;
    var input2 = req.body.input2;

    var execFile = require('child_process').execFile;

    var program = "path/to/executable";
    var args    = [input1, input2];

    var child = execFile(program, args,
        function (error, stdout, stderr){           
            console.log(error);
            console.log(stdout);
            console.log(stderr);

            const file = __dirname + "/output.txt"
            app.get('/output.txt', function (req, res) {
                res.sendFile(path.join(__dirname + '/output.txt'));
            });
            res.send("/output.txt");
        })
})

这在本地有效。

我现在正尝试使用App Engine将其部署在Google Cloud Platform上。

但是,当我进入托管的网站并启动此POST /generate请求时,没有得到预期的输出。在我的项目的Google Cloud Platform日志中,我可以看到以下错误:

 textPayload: "{ Error: spawn cpp/web_cpp_app/x64/Debug/web_cpp_app ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:240:19)
    at onErrorNT (internal/child_process.js:415:16)
    at process._tickCallback (internal/process/next_tick.js:63:19)
" 

起初我不理解该错误,但是现在我可以看到,如果我在本地运行同一项目,但是将独立可执行文件的路径设置为无效路径,则会收到相同的错误。我猜想在部署时,我的可执行文件不包括在内?

我需要在package.jsonapp.yaml文件中添加一些特定内容以包含可执行文件吗?

编辑:应用引擎可以在Linux上运行,而我的可执行文件是否适用于Windows?

回答如下:

您对操作系统是正确的,按照此Doc NodeJS的Appengine标准,它使用Ubuntu操作系统,而弹性使用Debian

关于可执行文件兼容性,我发现此post

Node js Google App Engine中的child

我有一个在本地主机上工作的Node Express服务器。它使用child_process运行C ++独立可执行文件。

使用child_process的代码如下(应用程序创建output.txt):

app.post('/generate', async function(req, res)
{
    var input1 = req.body.input1;
    var input2 = req.body.input2;

    var execFile = require('child_process').execFile;

    var program = "path/to/executable";
    var args    = [input1, input2];

    var child = execFile(program, args,
        function (error, stdout, stderr){           
            console.log(error);
            console.log(stdout);
            console.log(stderr);

            const file = __dirname + "/output.txt"
            app.get('/output.txt', function (req, res) {
                res.sendFile(path.join(__dirname + '/output.txt'));
            });
            res.send("/output.txt");
        })
})

这在本地有效。

我现在正尝试使用App Engine将其部署在Google Cloud Platform上。

但是,当我进入托管的网站并启动此POST /generate请求时,没有得到预期的输出。在我的项目的Google Cloud Platform日志中,我可以看到以下错误:

 textPayload: "{ Error: spawn cpp/web_cpp_app/x64/Debug/web_cpp_app ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:240:19)
    at onErrorNT (internal/child_process.js:415:16)
    at process._tickCallback (internal/process/next_tick.js:63:19)
" 

起初我不理解该错误,但是现在我可以看到,如果我在本地运行同一项目,但是将独立可执行文件的路径设置为无效路径,则会收到相同的错误。我猜想在部署时,我的可执行文件不包括在内?

我需要在package.jsonapp.yaml文件中添加一些特定内容以包含可执行文件吗?

编辑:应用引擎可以在Linux上运行,而我的可执行文件是否适用于Windows?

回答如下:

您对操作系统是正确的,按照此Doc NodeJS的Appengine标准,它使用Ubuntu操作系统,而弹性使用Debian

关于可执行文件兼容性,我发现此post

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论