Javascript NodeJS-socket.on不';似乎没有人叫他

Javascript NodeJS-socket.on不';似乎没有人叫他,javascript,html,node.js,express,socket.io,Javascript,Html,Node.js,Express,Socket.io,我正在使用Node.JS POST方法向服务器提交表单。它被传输到服务器;在这个阶段没有问题发生。但是,当我将io.emit与socket.io一起使用以将数据传输回客户端时,客户端似乎什么也没有发生。控制台上没有打印任何内容,在控制台或命令提示符(我运行服务器的地方)中也没有收到任何错误 index.html: <form id="schoolCreateForm" action="http://localhost:3000/createSchool" method="POST">

我正在使用Node.JS POST方法向服务器提交表单。它被传输到服务器;在这个阶段没有问题发生。但是,当我将
io.emit
与socket.io一起使用以将数据传输回客户端时,客户端似乎什么也没有发生。控制台上没有打印任何内容,在控制台或命令提示符(我运行服务器的地方)中也没有收到任何错误

index.html:

<form id="schoolCreateForm" action="http://localhost:3000/createSchool" method="POST">
    School name: <input name="schoolName" type="text"><br><br>
    Private?: <input name="schoolPrivate" type="checkbox"><br><br>
    Entry password: <input name="entryPassword" type="password"><br><br>
    <button type="submit">Submit</button>
</form>

<script>
    var socket = io();
    socket.on('updateSchool', function(response) {
        console.log(response);
        document.getElementById("headerSchoolName").innerHTML = data.schoolName;
    });
</script>
var express = require('express');
var app = express();
var serv = require('http').Server(app);
var io = require('socket.io')(serv);

var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());

app.post('/createSchool', function(req, res) {
    response = {
        school_name: req.body.schoolName,
        school_private: req.body.schoolPrivate,
        entry_password: req.body.entryPassword
    };
    console.log(response);

    res.sendFile(__dirname + '/client/index.html');

    io.emit('updateSchool', response);
});

serv.listen(3000);
console.log("Server started on localhost://3000");
有人知道发生了什么吗?


<form  action="http://localhost:3000/createSchool" method="POST">
School name: <input name="schoolName" type="text"><br><br>
Private?: <input name="schoolPrivate" type="checkbox"><br><br>
Entry password: <input name="entryPassword" type="password"><br><br>
<button type="submit" id="schoolCreateForm">Submit</button>
学校名称:

私人?:

输入密码:

提交

提交表单数据后,它将重新加载页面,这意味着套接字连接将结束。如果希望看到套接字响应,请在不重新加载页面的情况下发出ajax.post请求

<form id="schoolCreateForm">
School name: <input name="schoolName" type="text"><br><br>
Private?: <input name="schoolPrivate" type="checkbox"><br><br>
Entry password: <input name="entryPassword" type="password"><br><br>
<button type="submit">Submit</button>
</form>

<script>
   document.querySelector('#schoolCreateForm').addEventListener('click', 
   function(e) {
     e.proventDefault() // this line will not all to reload page after 
                       /// submitting the 
                       //form data
 ### writh you ajax request functionality here 

  })
var socket = io();
socket.on('updateSchool', function(response) {
    console.log(response);
    document.getElementById("headerSchoolName").innerHTML = data.schoolName;
});

学校名称:

私人?:

输入密码:

提交 document.querySelector(“#schoolCreateForm”).addEventListener('click', 职能(e){ e、 proventDefault()//这一行不会全部重新加载页面 ///提交 //表单数据 ###将ajax请求功能写入此处 }) var socket=io(); socket.on('updateSchool',函数(响应){ 控制台日志(响应); document.getElementById(“headerSchoolName”).innerHTML=data.schoolName; });

不幸的是,
e.preventDefault
现在阻止我按提交按钮或复选框。有什么修正吗?嗯。我想你应该给表单按钮提供表单id。它将允许你点击按钮,但现在当我按下提交时,什么也没有发生。甚至可以将socket.io用于这种类型的东西吗?