使用请求和套接字将数据从 python 传输到 nodejs

Transfer data from python to nodejs using requests and socket

我尝试将数据从一个简单的 python 程序发送到节点服务器。但没有成功。这就是我寻求帮助的原因。

我的简单 python :

import requests

SIGNUP_URL = 'http://localhost:8000/timer'

def submit_form():
        obj = {name:'whateever'}
        resp = requests.post(SIGNUP_URL, data = obj)        
        
if __name__ == '__main__':
            submit_form()

我的 nodejs(轻,我删除了不关心的行):

var http = require('http');
var express = require('express');
var app = express();
app.get('/', function (request, response) {
    response.sendFile(__dirname + '/public/index.html');
});
var server = http.createServer(app);
var io = require('socket.io')(server);
const bodyParser = require('body-parser'); 
const path = require('path');
const {execFile, exec, spawn} = require ('child_process');
app.use(express.static('public'));
app.use(bodyParser.urlencoded({ extended: true }));   

app.post('/timer', function(req, res){                 
    res.sendFile(__dirname + '/public/status.html');
    var test = "test";
    var data = req.body;
    var info = data.name;
    io.emit('messageFromServer', { info });
    console.log('info')
});

server.listen(8000, console.log("listening to port 8000"));

所以,当我执行 python 时,我想将数据“name : whatever”传输到服务器,然后我希望服务器将数据写入控制台(以确保数据发送正确),我一切正常,我想将此数据发送到我的 html 页面... 谢谢你帮助我。

答案:

python代码:

import requests

SIGNUP_URL = 'http://localhost:8000/timer'

def submit_form():
        obj = {'name':'whateever'}
        resp = requests.post(SIGNUP_URL, data = obj)        
        
if __name__ == '__main__':
            submit_form()

nodejs 代码:

app.post('/timer', function(req, res){                 
    res.sendFile(__dirname + '/public/status.html');
    var info= req.body;
    io.emit('messageFromServer', info);
    console.log(info)
});

有效。