运行Python脚本的Node.js无法返回正确的结果

时间:2019-08-02 00:10:41

标签: python node.js stdout stdin spawn

我正在开发Node.Js / Express应用,需要从路由调用python脚本。

路线代码:

router.get ('/new_bids',async (req, res) => {
  const { spawn } = require('child_process');
  const pyprog = spawn('python',["public/pythonscripts/new_bids_alert.py"]);
  pyprog.stdout.on('data', function(results) {
      console.log('results: %j', results[0]) 
  });
  pyprog.stderr.on('data', (results) => {
      console.log('err results: %j', results) 
  });
}) 

Python new_bids_alert.py:

 import sys
 em = 2
 print(em)
 sys.stdout.flush()

我希望看到:

  

结果:2

但是我得到了

  

结果:50

console.log(results)

返回:

  

“缓冲区32 0d 0a”

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

弄清楚了。应该使用:

  

JSON.parse(结果)

代替:

  

结果[0]