如何处理HTML中的Node-js中发生的事件?我希望当一个输入在HTML中点击时,节点操作:console.log("An element clicked")。
HTML:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<input id="1" name="first" value="Tap here ..."/>
</body>
</html>app.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中的一些代码是不必要的,我不知道。请提供适当的代码。
发布于 2020-02-26 06:02:18
这需要客户端到服务器之间的通信,这可以很容易地使用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‘是单击事件的名称,它可以是任何东西,比如'onclick’,‘鼠标单击’或‘鼠标’
有了这个配置,
在前端( 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);这一行将发出服务器正在侦听的'click'事件。
希望这会有所帮助;)
访问https://socket.io获取更多信息
https://stackoverflow.com/questions/60395077
复制相似问题