如何使用 faunadb-js 将字符串 FQL 解析为查询?

How do I parse string FQL to a query using faunadb-js?

假设我有一个像 const fql = "CreateCollection({ name: "users" })" 这样的字符串。我如何在 JS 中将它变成 faunadb Expr

目前执行此操作的唯一方法似乎是将 FQL 评估为 JavaScript。

fauna-shelleval command是使用esprima实现的,将FQL解析为ECMAScript,然后运行通过node的vmapi和escodegen .

如果可以的话,将 FQL 文件重写为 JS 文件可能会更容易!

您自己找到了正确答案。 FQL 不是基于字符串的语言。这种方法避免了像 SQL 注入这样的问题,但它确实意味着你需要在 某处 使用驱动程序、控制台或像 Fauna Schema Migrate (FSM ).

const fql = "CreateCollection({ name: "users" })"

您举的例子倾向于schema/resource管理。如果这是您的实际需要,请考虑 FSM 或 Fauna Serverless Framework plugin.

如果您正在使用 JavaScript 构建前端应用程序,FSM 可能是正确的方法,因为它可以直接融入您的应用程序。 它可能还会为您提供更多有关如何将字符串转换为 FQL 的提示。您可以在单个 FQL 文件中执行上述操作,例如,fauna/resources/collections/users.fql 为:

CreateCollection({ name: "users" })

如果您在单独的管道中将基础架构作为代码来执行,或者已经在使用 Serverless Framework 进行构建,那么该插件可能更适合。

如果你想在论坛上看到其他东西,比如 Pulumi 或 Terraform provider plugins, please submit a feature request