将数据从 Python 返回到 node.js

Rob*_*tte 5 python node.js

我一直在关注我发现的几个从 Node.js 调用 Python 脚本的示例。我能够执行脚本,但无法从 Python 返回数据。

测试.js

var sys   = require('sys'),
    spawn = require('child_process').spawn,
    dummy  = spawn('python', ['test.py']);

dummy.stdout.on('data', function (data) {
sys.print("testing...\n");
sys.print(data);
});
Run Code Online (Sandbox Code Playgroud)

测试文件

import time
def dummy() :
    out = '';
    for i in range(0,10) :
        out += str(i + 1) + "\n"
        time.sleep(0.1)
    print out
    return out
if __name__ =='__main__' :
    dummy = dummy()
Run Code Online (Sandbox Code Playgroud)

有人可以提供一个如何将结果从 test.py 返回到 test.js 的示例吗?

谢谢。

注意:test.py 进行了适当的缩进编辑。

Rob*_*tte 4

我想出了如何做到这一点,通过在 Python 中打印数据,并使用 stdout.on() 在 Node 中“监听”打印。

测试.js

var sys   = require('sys'),
    spawn = require('child_process').spawn,
    dummy  = spawn('python', ['test.py']);

dummy.stdout.on('data', function(data) {
    sys.print(data.toString());
});
Run Code Online (Sandbox Code Playgroud)

测试.py

import time
def dummy() :
    out = '';
    for i in range(0,10) :
        out += str(i + 1) + ", "
        time.sleep(0.1)
    print out
if __name__ =='__main__' :
    dummy = dummy()
Run Code Online (Sandbox Code Playgroud)