Запуск файла .py при открытии страницы JS в браузере сервера nodjs - PullRequest
2 голосов
/ 05 ноября 2019

У меня есть сервер nodjs с несколькими страницами JS. На одном из них я хочу, чтобы локальный файл .py открывался и запускался один раз в фоновом режиме. Мне не нужно генерировать ответ от него.

Я уже настроил фляжку, но я не понимаю, как включить это в мою текущую страницу React Javascript (ту, с которой я хочу, чтобы мой файл python был запущен).

В разных случаях я пытался использовать:

var path = require('C:/Users/myPath/python.exe');
var nwDir = path.dirname(process.execPath);
var spawn = require("child_process").spawn;
var child = spawn(nwDir + '/test.py');]

, а также:

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

, но я получаю эту ошибку в обоих случаях: TypeError: spawn isне функция

, расположенная по адресу:

const pythonProcess = spawn('python',["/test.py"]);

, наконец, я также попытался:

var express = require('express'); 
var app = express(); 
const {PythonShell} = require('python-shell');

    var options = {
      mode: 'text',
      pythonPath: 
      'C:/Users/myPath/python.exe',
      pythonOptions: [],
        // make sure you use an absolute path for scriptPath
      scriptPath: 
      C:/Users/myPath/test.py', args: []
     };

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

, но я получаю эту ошибку: TypeError: Невозможно прочитать свойство 'prototype'из неопределенного

, расположенного в моем файле response.js:

var res = Object.create(http.ServerResponse.prototype);

Что-то, что я должен включить в мой файл server.js? Есть ли способ, которым я могу включить колбу с моей текущей страницей JS?

Для справки, вот базовая версия моего текущего файла JS:

myFile.js:

import React from "react";
import Header from "../Header";
import Footer from "../Footer";

class SummaryPage extends React.Component {
render() {

    return (

      <div>
       <Header />

        <div className="container-fluid ">
          <b><h1>Update and Read CSV File </h1></b>
        </div>

        <form enctype="multipart/form-data" action="/upload/image" 
method="post">
        <input type="file" id="fileUpload" />
    <div id="dvCSV">    
    </div>
    </form>      


<Footer/>
      </div>
    );
  }
 }

export default SummaryPage;

Повторим, как мне открыть и запустить локальный файл .py в фоновом режиме при открытии моей JS-страницы? Я также был бы счастлив, если бы это произошло с нажатием кнопки. Никакого ответа от файла .py не требуется.

Спасибо за потраченное время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...