首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Node-js中处理HTML事件

在Node-js中处理HTML事件
EN

Stack Overflow用户
提问于 2020-02-25 12:51:15
回答 1查看 1.9K关注 0票数 0

如何处理HTML中的Node-js中发生的事件?我希望当一个输入在HTML中点击时,节点操作:console.log("An element clicked")

HTML:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<input id="1" name="first" value="Tap here ..."/>
</body>
</html>

app.js:

代码语言:javascript
复制
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中的一些代码是不必要的,我不知道。请提供适当的代码。

EN

回答 1

Stack Overflow用户

发布于 2020-02-26 06:02:18

这需要客户端到服务器之间的通信,这可以很容易地使用Socket IO完成。

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

你可以用npm安装它,

代码语言:javascript
复制
npm i --save socket.io

或者在全球范围内,

代码语言:javascript
复制
npm i socket.io

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

代码语言:javascript
复制
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‘是单击事件的名称,它可以是任何东西,比如'onclick’,‘鼠标单击’或‘鼠标’

有了这个配置,

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

代码语言:javascript
复制
<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>

如你所见,我用

代码语言:javascript
复制
socket.emit(event, data);

这一行将发出服务器正在侦听的'click'事件。

希望这会有所帮助;)

访问https://socket.io获取更多信息

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60395077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档