繁体   English   中英

在 Node-js 中处理 HTML 事件

[英]Handle HTML event in Node-js

如何在 Node-js 中处理 HTML 中发生的事件? 我希望每当在 HTML 中单击输入时,节点都会运行: console.log("An element clicked")

HTML:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<input id="1" name="first" value="Tap here ..."/>
</body>
</html>

应用程序.js:

var express=require('express');
var app=express();
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({extended:false}));
    app.use(express.static('E:/Alireza/src/js'));
    app.listen(1408, err=>{console.log("Processing ...")});

也许app.js一些代码是不必要的,我不知道。 请提供适当的代码。

这需要客户端到服务器的通信,这可以使用 Socket IO 轻松完成

Socket IO 是浏览器和服务器之间的双向和基于事件的通信。

你可以使用 npm 安装它,

npm i --save socket.io

或者只是在全球范围内拥有它,

npm i socket.io

在后端(节点 js),我们通过传递服务器对象(http)来初始化套接字,然后监听传入的套接字

var app = require('express')();
var http = require('http').createServer(app);
var io = require('socket.io')(http);

app.get('/', (req, res) => {
  res.sendFile(__dirname + '/index.html');
});

io.on('click', (data) => {
    console.log("An element clicked")
});

io.on('connection', function(socket){
  console.log('a user connected');
});

http.listen(3000, function(){
  console.log('listening on *:3000');
});

在你的情况下,你想在每次点击 html 时通知服务器

看到这一行, io.on('click', (data) => {

'click'是点击事件名称,它可以是任何东西,例如'onclick' 或 'mouse click' 或 'mouse'

有了这个配置,

在前端(html)中,加载 socket io 客户端并初始化它,然后发出如下所示的 click 事件

<script src="/socket.io/socket.io.js"></script>
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
<script>
  window.onload = () => {
    const socket = io();
    $('#btn').click(() => {
      e.preventDefault(); // prevents page reloading
      socket.emit('click', 'hello server!'));
      return false;
    });
  });
</script>

如您所见,我正在使用

socket.emit(event, data);

此行将发出服务器正在侦听的“单击”事件。

希望这可以帮助 ;)

访问https://socket.io了解更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM