所以我正在运行以下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程序接收数据。它一写完就失败了