如何使用faunadb-js将字符串格式的FQL转换为faunadb Expr查询对象
首先你给出的示例字符串存在语法错误,嵌套的双引号未转义,需要先调整为合法的JS字符串:
// 推荐用模板字符串,不需要转义内部双引号 const fql = `CreateCollection({ name: "users" })`
不同版本的Fauna JavaScript SDK转换方式如下:
Fauna v4 SDK
直接调用query模块的parse方法即可将合法FQL字符串转为Expr对象:
const faunadb = require('faunadb') const q = faunadb.query const fqlStr = `CreateCollection({ name: "users" })` const expr = q.parse(fqlStr) // 转换完成的Expr对象 // 后续可直接传入client.query执行 // client.query(expr).then(res => console.log(res))
Fauna v5 SDK
使用fql.raw方法完成转换:
import { fql } from 'fauna' const fqlStr = `CreateCollection({ name: "users" })` const expr = fql.raw(fqlStr) // 转换完成的Expr对象
注意事项
- 传入的FQL字符串必须语法完全合规,否则解析阶段会直接抛出错误
- 禁止拼接未过滤的用户输入内容到FQL字符串后再转换,会存在FQL注入风险,有动态参数需求时请直接使用SDK原生的参数传递方案,不要走字符串拼接逻辑
内容的提问来源于stack exchange,提问作者Evan Summers
相关产品推荐
相关产品推荐

