2016-06-06 2 views
0

Итак, у меня есть узел, вызывающий скрипт python, но я хочу вернуть объект из python.Node.js, получающий данные из сценария python

настоящее время я использую Python-оболочки (https://www.npmjs.com/package/python-shell), но проблема заключается в ее прослушивания, так что я не могу на самом деле отправить данные, которые я получаю от него

shell.on('message', function(message){ 
      ah = message; 
      console.log(message); 
      console.log("#"); 

}); 

    console.log(ah); 
    var host = { 
     "hostName":ah 
    }; 
    console.log(host); 
    return response.send(200, host); 

последняя часть кода будет выполняться хорошо до того, как скрипт python вернет что-либо с помощью print() (я также не могу поместить response.send в функцию прослушивания, потому что он может отправлять каждый раз при печати сценария на питоне)

есть ли другой способ сделать это?

ответ

0

Если вы хотите, чтобы вернуть результаты сценария к клиенту, просто обернуть этот вызов: PythonShell.run в в маршрутизаторе конечной точке:

app.get('/somepath', (req, res)=>{ 

PythonShell.run('my_script.py', options, function (err, results) { 
     if (err) throw err; 
     // results is an array consisting of messages collected during execution 
     res.send('results: %j', results); 
    }); 

}); 
+0

СММ, что mgiht работу, я постараюсь его и вернусь к тебе. –

Смежные вопросы