Javascript FaunaDB FQL-未找到表单/函数,或参数键无效:{params}
我正在学习FQL并尝试进行大规模更新,但我不知道我做错了什么,也不知道错误真正指向了什么 这是我的密码:Javascript FaunaDB FQL-未找到表单/函数,或参数键无效:{params},javascript,facebook-fql,faunadb,Javascript,Facebook Fql,Faunadb,我正在学习FQL并尝试进行大规模更新,但我不知道我做错了什么,也不知道错误真正指向了什么 这是我的密码: const updateResult = await serverClient.query( q.Map( guests, q.Lambda( "guest", q.Update(q.Var("guest").id, { data:
const updateResult = await serverClient.query(
q.Map(
guests,
q.Lambda(
"guest",
q.Update(q.Var("guest").id, {
data: {
emailSent: q.Var("guest").emailSent,
emailStatus: q.Var("guest").emailStatus,
emailRejectReason: q.Var("guest").emailRejectReason,
},
})
)
)
);
下面是通过console.log查看来宾对象的内容:
[ { email: 'myemail+bart72320@gmail.com',
emailStatus: 'sent',
emailRejectReason: null,
emailSent: true,
id: Ref(Collection("Guests"), "271884343706649107") } ]
下面是与JSON.stringify相同的对象:
[
{
"email": "myemail+bart72320@gmail.com",
"emailStatus": "sent",
"emailRejectReason": null,
"emailSent": true,
"id": {
"@ref": {
"id": "271884343706649107",
"collection": {
"@ref": {
"id": "Guests",
"collection": {
"@ref": {
"id": "collections"
}
}
}
}
}
}
}
]
以下是返回的部分错误:
{ [BadRequest: invalid expression]
name: 'BadRequest',
message: 'invalid expression',
description:
'No form/function found, or invalid argument keys: { params }.',
requestResult:
RequestResult {
method: 'POST',
path: '',
query: null,
requestRaw:
'{"map":{"lambda":"guest","expr":{"params":{"object":{"data":{"object":{}}}}}},"collection":[{"object":{"email":"myemail+bart72320@gmail.com","emailStatus":"sent","emailRejectReason":null,"emailSent":true,"id":{"@ref":{"id":"271884343706649107","collection":{"@ref":{"id":"Guests","collection":{"@ref":{"id":"collections"}}}}}}}}]}',
requestContent: Expr { raw: [Object] },
responseRaw:
'{"errors":[{"position":["map","expr"],"code":"invalid expression","description":"No form/function found, or invalid argument keys: { params }."}]}',
我已经得到了更新,lambdas也开始工作了,但这次没有,也许我只是不善于阅读嵌套的、功能性的错误消息。什么是表单,它与函数相同,还是缺少键:params?我不知道该怎么看
请帮助我理解我做错了什么,这个错误消息是否真的有用,以及如何解释它,或者它是否只是一个混乱的总括
谢谢 您正在将Javascript语法与FQL表达式混合使用
Var("guest")
是FQL表达式,但
Var("guest").id
是一种Javascript语法。FQL中的点运算符等效为
Select("id", Var("guest"))
请记住,FQL不是在Javascript上执行的,而是在服务器端执行的。您将Javascript语法与FQL表达式混合在一起
Var("guest")
是FQL表达式,但
Var("guest").id
是一种Javascript语法。FQL中的点运算符等效为
Select("id", Var("guest"))
请记住,FQL不是在Javascript上执行的,而是在服务器端执行的。谢谢!我猜所有的问题都让我觉得这是在现场做JS,但是如果你想一想,那就没有意义了,我们只是给你发了一份工作:)谢谢!我猜所有的问题都让我觉得这是在现场做JS,但如果你想一想,那就没有意义了,我们只是给你派了一份工作:)