Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

254
Vistas
How to use child process and spawn in React.js webapp

I am making this web app about bookstore which recommends books based on book user selects. I want it to run a python script and for that, I have used child process looking at this thread How to call a Python function from Node.js

Here's the code:

const spawn = require("child_process").spawn;
const pythonProcess = spawn('python',["../../../python/book_recommendation.py","Timeline"]);

const Recommendations = pythonProcess.stdout.on('data', (data) => {
    console.log(data);
});

module.exports = Recommendations;

I want this code to run when I click on the product and get directed to productScreen page. But I get the error "TypeError: Spawn is not a function". With some google searching, I found out that I m calling this function through react and not node.js. I m using react as frontend and node.js as backend. How can I solve this problem?

Here's how I imported this in react ProductScreen.js page

import { Recommendations } from "../machine-learning/recommendation_engine"

Here's the file structure of my project

enter image description here

Update:

const spawn = require("child_process").spawn;
const pythonProcess = spawn('python',["../python/book_recommendation.py","Timeline"]);
app.get("/product/:id", (req, res) => {
  pythonProcess.stdout.on('data', (data) => {
      console.log(data);
  });
});

I moved the above code in server.js backend folder now. How do I call it?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

I don't think it's good architecture wise. But if you insist on doing it that way, then you need to spawn the child process when the requests hit. You could then pipe its output to the response stream. In this example I am using pipeline which is somewhat safer than mystream.pipe.

const spawn = require("child_process").spawn;
const { pipeline } = require('stream');

app.get("/python-process", (request, response) => {
    const pythonProcess = spawn('python', [
        "../python/book_recommendation.py",
        "Timeline"
    ]);
    // pipe the python process stream into the response stream
    pipeline(pythonProcess, response, (err) => err && console.warn(err));
});

Note, I haven't tested this, but it is the gist of how you could go about it.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda