小白求教,click 之类的事件是在后台 Nodejs 中绑定,还是在前台 js 中绑定?

小白求教,click 之类的事件是在后台 Nodejs 中绑定,还是在前台 js 中绑定?

刚接触 node.js,需要用百度的 clouda 开发。

Clouda 中是可以添加事件的,那我是该在后台 node.js 中绑定事件,还是在前台 js 中绑定事件?

如果是后台 node.js 中,那我能在后台我能用jQuey 吗?

不知道我是不是表达清楚了?

7 回复

这个问题的核心在于理解前端和后端在事件处理上的区别。点击事件(如 click)通常是在用户界面发生的交互事件,因此这类事件一般在前端 JavaScript 中处理。

前端 vs. 后端

  1. 前端:指的是客户端浏览器中的代码,包括 HTML、CSS 和 JavaScript。这些代码直接与用户的操作交互,比如点击按钮或滚动页面。

  2. 后端:指的是服务器端的代码,通常使用 Node.js 等技术编写。后端代码主要负责处理数据逻辑、数据库操作等任务,不直接与用户界面交互。

示例代码

前端代码示例

假设你正在创建一个简单的网页,其中有一个按钮,当用户点击该按钮时,会触发一个事件。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Click Event Example</title>
</head>
<body>
    <button id="myButton">点击我!</button>

    <script>
        // 这是在前端 JavaScript 中绑定的 click 事件
        document.getElementById('myButton').addEventListener('click', function() {
            alert('按钮被点击了!');
        });
    </script>
</body>
</html>

在这个例子中,addEventListener 方法用于在按钮上绑定 click 事件。当用户点击按钮时,会弹出一个警告框显示 “按钮被点击了!”。

后端代码示例

如果你需要在后端使用 Node.js 处理一些逻辑,可以考虑通过 AJAX 或 Fetch API 发送请求到服务器,然后在后端进行处理。

// 假设这是你的 Node.js 后端代码
const express = require('express');
const app = express();

app.get('/handle-click', (req, res) => {
    console.log('点击事件从客户端传来');
    res.send('点击事件已处理');
});

app.listen(3000, () => {
    console.log('服务器运行在 http://localhost:3000');
});

在这个例子中,前端可以通过发送请求到 /handle-click 来通知服务器发生了点击事件。这在某些场景下可能是有用的,但通常点击事件本身还是应该在前端处理。

总结

对于点击事件,通常在前端 JavaScript 中处理是最常见的做法。如果你需要在点击事件发生时做一些后端处理,可以通过发送请求来实现。在前端代码中,你可以使用 jQuery 或原生 JavaScript 来绑定事件,但在后端代码中直接使用 jQuery 是没有意义的,因为 jQuery 主要用于前端 DOM 操作。


嗯…这个问题…

例如,一百个用户访问你的网页,你后台绑定事件…怎么区分这个一百个用户的事件呢…这不是很蛋疼的问题吗…

虽然,回答在前台js 绑定…就可以了…但是,还是想啰嗦一下…

对了,这里的事件是指 前端页面展示事件…

后台绑定前台事件,这么高端

额。

我看到clouda示例中有类似下边的代码:

给两个按钮绑定了点击事件,点击后可以保存表单。这是怎么回事哦? 有点迷糊。

//onready is respond for event binding and data manipulate
env.onready = function(){ 
    Library.touch.on('#start', 'touchstart', submitMessage);
    Library.touch.on('.clearHistory', 'touchstart', clearHistory);
};
var submitMessage = function(){
var input = document.getElementById('messageInput'),
    inputVal = input.value.trim(); 
if (inputVal == '') {
   return false; 
};
session.messages.add({
   content : inputVal
});
session.messages.save();
input.value = ''; 

}; var clearHistory = function(){ session.messages.destroy(); session.messages.save(); }

我使用的是 jsdm / jsdm.proxy 方式进行前后端事件绑定,不过你要精通CQRS/DDD的开发方式,建立好核心后,UI部分就会根据核心事件更新界面。

参考地址 :

https://github.com/brighthas/jsdm

https://github.com/brighthas/jsdm.proxy


签名: 交流群244728015 《Node.js 服务器框架开发实战》 http://url.cn/Pn07N3

点击事件(如 click)通常是在前台 JavaScript 中进行绑定,而不是在后台 Node.js 中。这是因为点击事件是用户与浏览器中的页面元素进行交互时触发的,而这些交互是发生在客户端(用户的浏览器)上的。

在客户端JavaScript中,你可以使用原生的JavaScript或者库(如jQuery)来绑定事件。以下是一个简单的示例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Click Event Example</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>

<button id="myButton">点击我</button>

<script>
// 使用原生JavaScript
document.getElementById('myButton').addEventListener('click', function() {
    alert('按钮被点击了!');
});

// 或者使用jQuery
$('#myButton').on('click', function() {
    alert('按钮被点击了!');
});
</script>

</body>
</html>

上述代码展示了如何使用原生JavaScript或jQuery来为按钮添加点击事件监听器。

如果你确实需要在服务器端(Node.js)处理一些逻辑,并且这些逻辑是基于用户的点击操作的,那么前端JavaScript通常会向后端发送一个请求(如通过AJAX或Fetch API),然后后端Node.js服务器会处理这个请求并返回相应数据。

例如,在Node.js中设置一个简单的HTTP服务器接收请求:

const http = require('http');

http.createServer((req, res) => {
    if (req.url === '/click') {
        res.writeHead(200, {'Content-Type': 'text/plain'});
        res.end('按钮被点击了');
    }
}).listen(3000);

这样,当你的前端JavaScript代码向/click发起请求时,后端Node.js服务器将能够处理该请求。

至于你在后台能否使用jQuery,一般来说不推荐这样做,因为Node.js环境主要是用于服务端开发,而jQuery是专门为浏览器设计的。不过,你可以使用类似cheerio这样的库来解析HTML文档,但这并不是真正的jQuery。

回到顶部