我开发了Web应用程序(ReactJS、Flux、React-router;服务器:NodeJS、Express) 它最初只加载 html(同构方式)。
现在我需要从客户端隐藏一些业务逻辑。 例如,我有评级系统。 用户只有在之前没有投票过的情况下才应该能够投票。 我想,应该是这样的: 用户按下投票按钮。该按钮的处理函数将一个对象发送到服务器端:
{
userName: login,
password: password,
votedObjectId: objectId
}
服务器应该检查该用户是否存在于数据库中(通过用户名和密码),以及该用户之前是否曾为此对象投票过(通过用户名和 votedObjectId)。 如果一切正常,服务器应将行添加到评级表(userName 和 votedObjectId)
我不知道如何实现它。
我想,我应该在 server.js 文件中创建一个 js 方法,其中包含此逻辑。并且客户端应该触发这个方法。客户端如何向server.js发送请求?
最佳答案
您的想法是正确的,您需要将交互发布到服务器并让它处理业务逻辑。由于您的问题具体是如何将请求发送到服务器以触发此行为,我猜您尚未在应用程序中实现任何 RESTful 层。
Express.js 完全有能力做到这一点,因此我会寻找有关使用 Express 框架实现从客户端到服务器的简单 REST 调用的教程。您需要决定如何处理来自浏览器的 AJAX 调用,是通过一些简单的方法(例如使用 JQuery)还是使用更成熟的建模层(例如 Backbone 等)。
在我看来,您在文章开始时使用的技术列表省略了这一层,并且由于 React 是 MVC 中的“ View ”,而 React-Router 是(某种)“ Controller ”,因此您仍然需要“模型”部分 - 在 Javascript 世界中表示服务器 API 的某种方式。
关于node.js - ReactJS webapp 中的业务逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32024042/