Javascript FaunaDB FQL-未找到表单/函数,或参数键无效:{params}

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:

我正在学习FQL并尝试进行大规模更新,但我不知道我做错了什么,也不知道错误真正指向了什么

这是我的密码:

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,但如果你想一想,那就没有意义了,我们只是给你派了一份工作:)