Выполнение Python из NodeJS (размещено во внешнем домене) - PullRequest
0 голосов
/ 13 сентября 2018

Итак, у меня работает следующий экспресс-сервер node.js:

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


app.get('/', (req, res) => {
    res.send('Please append a search');
});

app.get('/:card', (req, res) => {
    card = [req.params.card]

    var pyshell = new PythonShell('search_card.py', {args: card});

    pyshell.on('message', (message) => {
        res.send(message);
    });

    pyshell.end((err) => {
        if (err) throw err;
    });
});

app.listen(9000, () => console.log('App listening on port 9000!'));

Когда я использую приложение, используя локальный IP-адрес сервера (который размещен в интрасети), все работает нормально.

Но если я использую внешний IP, рут приложения работает (/), поэтому ясно, что соединение возможно, порт открыт и т. Д., Но если я использую функцию поиска (/ search_query), онзанимает несколько секунд (как если бы скрипт Python действительно выполнялся), а затем chrome сообщает ERR_CONNECTION_REFUSED (этот сайт недоступен).

Может кто-нибудь объяснить это поведение?

РЕДАКТИРОВАТЬ: Iпоместите console.log внутри pyshell.on ('message'), и данные будут получены из программы python.Его, как только он пишет, заканчивается, что он терпит неудачу

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