javascript - 验证 JSON 对象属性是否包含在 Enum 中
问题描述
我有一个 Lambda HTTPS TS 函数,它获取从前端传递给它的 JSON 对象。我想对该 JSON 对象进行一些验证
身体应该有这个形状(通知):
interface Notifications {
type: NotificationType;
frequency: FrequencyType;
}
enum NotificationType {
SMS = 'SMS',
EMAIL = 'EMAIL'
}
enum FrequencyType {
INSTANT = 'INSTANT',
DAILY = 'DAILY',
WEEKLY = 'WEEKLY',
NEVER = 'NEVER'
}
我现在从另一个堆栈帖子中得到的东西不起作用
if (body && body.frequency in FrequencyType && body.type in NotificationType) {
//do stuff
}
有没有更简洁的方法来确认前端永远不会传递无效的通知类型?我确实在 FE 上使用了 Typing,但也只是尝试在后端处理验证
TS 到 JS 代码符合枚举
var NotificationType;
(function(NotificationType2) {
NotificationType2["SMS"] = "SMS";
NotificationType2["EMAIL"] = "EMAIL";
})(NotificationType || (NotificationType = {}));
var FrequencyType;
(function(FrequencyType2) {
FrequencyType2["INSTANT"] = "INSTANT";
FrequencyType2["DAILY"] = "DAILY";
FrequencyType2["WEEKLY"] = "WEEKLY";
FrequencyType2["NEVER"] = "NEVER";
})(FrequencyType || (FrequencyType = {}));
解决方案
所以前端在错误的情况下传递了 JSON 对象的键,我的 //doStuff 代码也在运行一个对这个用户不起作用的 SQL PUT,因为他们在数据库中没有记录所以不得不重新工作一下
推荐阅读
- javascript - 仅数据列表验证选项
- python - While 循环无法处理值 10
- c++ - 在 Windows 上构建一个简单的 C++ 项目,使用 CMake 和 clang
- c# - 查看asp.net mvc和asp.net core mvc的目录编译时间差
- python - 我们如何在 Django 中显示和存储二叉搜索树
- xamarin.forms - Xamarin Android,选择帐户后应用程序崩溃(ADAL/经纪人)
- python - 从 C++ 主程序调用包含导入的 cytonized python 代码
- python - 如何检查字典中的项目是否存在于 CSV 文件中?
- android - 如何在 MyFirebaseMessagingService 中获取 recent_token
- node.js - 如何在猫鼬的 $set 中使用 $push?