从NodeJS执行Python(托管在外部域中)

时间:2018-09-13 16:24:42

标签: python node.js express

所以我正在运行以下node.js Express服务器:

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(位于Intranet中)使用应用程序时,一切正常。

但是,如果我使用外部IP,则应用程序的根目录(/)可以正常工作,因此很明显可以建立连接并且端口是打开的,依此类推,但是如果我使用搜索功能(/ search_query),则需要花费一些时间秒(好像python脚本实际上正在运行),然后chrome提示ERR_CONNECTION_REFUSED(无法访问此站点)。

任何人都可以解释这种行为吗?

编辑: 我在pyshell.on('message')里面放了一个console.log,并且正在从python程序接收数据。它一写完就失败了

0 个答案:

没有答案