node.js - ReactJS webapp 中的业务逻辑

标签 node.js express reactjs

我开发了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/

相关文章:

node.js - 从 .desktop 文件运行 Node

node.js - 来自ajax的nodeJs表达请愿书不显示错误页面

javascript - 在 React 组件之间共享 volatile 变量

javascript - 从 props.children 中提取组件?

javascript - 如何访问 JSON API 响应中的嵌套信息?

mysql - 在 Node.js 中导出和导入 SQL DB

javascript - 如何有条件地使用带有 ES6 样式导入的内置 Node.js 或浏览器 API 方法?

node.js - Sequelize 5 属于关系不起作用

javascript - graphql 查询嵌入在 req.body 中

javascript - 禁用 Ag-grid 中的复选框选择