Итак, у меня работает следующий экспресс-сервер 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.Его, как только он пишет, заканчивается, что он терпит неудачу