小编kis*_*747的帖子

如何使用ConditionExpression检查dynamodb中是否已存在非键属性?

我想仅在userId,email和username不存在时插入到users表中(希望这些是唯一的).
userId是主键(哈希键,数据类型 - 数字).
用户名和电子邮件是非键属性(两个字符串).

这是我试过的方式:

response = userTable.put_item(
Item={
    'userId': userIdNext,
    'accType': 0,
    'username': usernameInput,
    'pwd': hashedPwd,
    'email': emailInput
},
ConditionExpression = "(attribute_not_exists(userIdNext)) AND (NOT (contains (email, :v_email))) AND (NOT (contains(username, :v_username)))",
ExpressionAttributeValues={
    ":v_email": emailInput,
    ":v_username": usernameInput
}
)
Run Code Online (Sandbox Code Playgroud)

我尝试从这里遵循逻辑运算符和条件表达式的aws文档:AWS条件表达式

但即使用户名或电子邮件已经存在于db中,它也会每次都插入到表中.
(我给新的userIdNext,因为它是主键,不能重复)

我正在使用Python实现boto3

python amazon-web-services amazon-dynamodb boto3

6
推荐指数
1
解决办法
5991
查看次数

在脱机模式下找不到服务工作文件

我的网络应用程序是这样的:

我有一个在端口80上运行的Apache服务器,我的域和不同子域的虚拟主机,包括SSL的端口443.

我有一个在端口5000上运行的nodejs应用程序.

使用proxypass从apache重定向到我的主域的所有流量到nodejs.

NodeJ然后加载服务工作者.

问题:

在线模式下首次加载应用程序时,它正常工作.Shows Service worker按预期在整个域消息上注册.即使对于某些css,js和img,它也会从ServiceWorker返回响应.

但现在,当我在离线模式下打开同一页面时,服务工作者不会将其作为打开Web应用程序的一部分.

错误:1.未捕获(在承诺中)TypeError:无法获取(...).

  1. 获取service-worker文件的脚本时发生未知错误.

在这方面提供正确实施的任何帮助都会有所帮助.

javascript apache node.js service-worker

2
推荐指数
1
解决办法
1498
查看次数