应该在后端执行什么类型的操作?

What type of operations should be performed in the backend?

所以我明白后端和前端之间的区别,但是我应该把什么类型的操作留给后端。例如,如果我在 Express 中使用 Node.js,我应该如何决定 operations/calculations 我应该在客户端或服务器端做什么?

提前致谢!

首先,您几乎必须在后端做一些事情:

  1. 代表用户的持久存储,可以在任何浏览器中使用。这将包括他们的帐户、代表该用户的任何 state/settings 以及该用户的任何数据。

  2. 任何需要保密的算法或代码。任何人都可以看到所有客户端代码。服务器代码可以保密。

  3. 一些安全操作。

  4. 客户端不一定要做的事情,例如联系任意外部主机以获取一些数据。

  5. 在存储或操作之前验证从客户端发送的所有数据。无法信任客户端,因此所有传入数据都是 checked/validated.

  6. 创建帐户并验证用户登录。

然后,在客户端中通常更容易做的事情有:

  1. 处理简单的用户交互,例如在执行某些不可逆操作(可能删除一些数据)之前提示配置。

  2. 在用户进行某些任务(例如填写表格或自动完成某些条目)时向他们提供反馈。

然后,有些事情可以在任何一个地方完成,将它们放在服务器或客户端上是否更合适实际上取决于您的特定应用程序、您的总体架构等......并且, 它们甚至可以在两个地方完成。

  1. 呈现 HTML 模板。可以在后端或前端完成,实际上可以在前端完成以供普通用户查看,也可以在后端完成以供搜索引擎查看。

  2. 数据验证和用户反馈。

  3. 从客户端向服务器发送 Ajax 调用以处理某些操作,然后更新客户端中的视图以显示该操作的结果,而无需重新加载页面。例如,从 Gmail 中删除电子邮件。这是前后端代码组合实现一个操作

how should I decide what operations/calculations I should do on the client side or the server side?

这是一件很难抽象地回答的事情。正如我上面所说,有些事情必须在服务器或客户端上完成,但其他事情可以通过多种方式完成。如果您描述您的应用程序,然后在您的应用程序中列出 5 种不同的功能,您试图决定在何处实现它们,那会更好。然后,我们可以根据您的应用和设计回答有关特定功能的问题。