How to call a Python function from Node.js

前端 未结 9 1630
借酒劲吻你
借酒劲吻你 2020-11-22 14:53

I have an Express Node.js application, but I also have a machine learning algorithm to use in Python. Is there a way I can call Python functions from my Node.js application

9条回答
  •  梦谈多话
    2020-11-22 15:18

    /*eslint-env es6*/
    /*global require*/
    /*global console*/
    var express = require('express'); 
    var app = express();
    
    // Creates a server which runs on port 3000 and  
    // can be accessed through localhost:3000
    app.listen(3000, function() { 
        console.log('server running on port 3000'); 
    } ) 
    
    app.get('/name', function(req, res) {
    
        console.log('Running');
    
        // Use child_process.spawn method from  
        // child_process module and assign it 
        // to variable spawn 
        var spawn = require("child_process").spawn;   
        // Parameters passed in spawn - 
        // 1. type_of_script 
        // 2. list containing Path of the script 
        //    and arguments for the script  
    
        // E.g : http://localhost:3000/name?firstname=Levente
        var process = spawn('python',['apiTest.py', 
                            req.query.firstname]);
    
        // Takes stdout data from script which executed 
        // with arguments and send this data to res object
        var output = '';
        process.stdout.on('data', function(data) {
    
            console.log("Sending Info")
            res.end(data.toString('utf8'));
        });
    
        console.log(output);
    }); 
    

    This worked for me. Your python.exe must be added to you path variables for this code snippet. Also, make sure your python script is in your project folder.

提交回复
热议问题