javascript - 在前端和后端使用常量整数

标签 javascript php ajax

假设我在后端 API 中定义了以下常量:

User::USER_ROLE_NORMAL; // Equal to 0
User::USER_ROLE_ADMIN; // Equal to 1

在我的后端,我现在可以进行以下比较:

if($user->role == User::USER_ROLE_NORMAL)

当我必须在前端应用逻辑时,最佳实践是什么? (其中这些常量未知)

在前端硬编码数字感觉不对,像这样:

if(ajaxData.role == 0)

对于上下文:我需要在前端应用逻辑来改变布局

最佳答案

由于前端和后端逻辑不一定(而且不应该)耦合,我认为最好的方法是在前端代码中定义相同的常量。请记住,前端代码应始终与 API 规范保持一致。

方式你做这件事取决于你(可以找到很多不错的选择)。

一个(简单的)方法可能是使用一些全局变量或使用某种服务(如果您使用的是某种框架)。

类似于:

const role {
  USER_ROLE_NORMAL: 0,
  USER_ROLE_ADMIN: 1,
};

然后您可以按如下方式使用它们:

if(ajaxData.role == role.USER_ROLE_NORMAL) {}

另一个选项(不太常用)是您可以在后端 API 中创建一个服务,为前端提供这些值以供使用。因此,在前端代码可以使用任何与 Angular 色相关的值(例如)之前,必须向后端发出请求以获取这些常量值并将其保存在前端以便在未来的操作中使用它。

关于javascript - 在前端和后端使用常量整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51932589/

相关文章:

javascript - 单选按钮的自定义 iCheck 设计可防止单击时输出总价

javascript - 使用 Chrome headless 浏览器获取呈现的字体

javascript - 如何在显示甜蜜警报后使用ajax在php中上传文件?

javascript - 如何使用实时 JSON 数据更新 D3.js 气泡图?

javascript - Ajax IndexedDB 删除当前成功上传

javascript - 为什么我的获取响应不会在我的调度中传递?

javascript - HTML 中的 "Placeholder"属性

php - 表中显示重复记录

PHP MySQLi 连接和查询错误处理。如何?

php - 从 php 调用外部 Web API 的最佳方式