Javascript 当我添加花括号以便能够向上下文添加更多元素时,如何访问GraphqlServer上下文对象?

Javascript 当我添加花括号以便能够向上下文添加更多元素时,如何访问GraphqlServer上下文对象?,javascript,arrays,node.js,graphql,Javascript,Arrays,Node.js,Graphql,我正在与GraphQL、GraphQL瑜伽和NodeJS合作 当DB数组嵌套在GraphQLServer上下文中时,访问DB数组时出现问题。当我的GraphQLServer上下文配置为如下所示的单个元素时,一切正常:(db是模拟db内容的数组) 当我向其添加大括号时,它会断开: 即使我在编码时没有看到任何错误,但当尝试执行任何解析程序时,它们似乎无法再访问DB对象,并且所有我的find()、findIndex()、some()以及与我的DB数组关联的所有方法都不再工作。如果我回到:conte

我正在与GraphQL、GraphQL瑜伽和NodeJS合作

当DB数组嵌套在GraphQLServer上下文中时,访问DB数组时出现问题。当我的GraphQLServer上下文配置为如下所示的单个元素时,一切正常:(db是模拟db内容的数组)

当我向其添加大括号时,它会断开:

即使我在编码时没有看到任何错误,但当尝试执行任何解析程序时,它们似乎无法再访问DB对象,并且所有我的find()、findIndex()、some()以及与我的DB数组关联的所有方法都不再工作。如果我回到:context:db,那么一切都会完美地工作

这是我在运行时遇到的错误 TypeError:无法读取未定义的属性“findIndex”

这是我的解析器的外观:

即使我在解析程序中解构上下文以直接使用数组,我仍然会得到相同的错误:

这是my package.json:

非常感谢您的帮助

如果您这样做:

const context = db
然后将context的值设置为
db
的值。如果您这样做了,然后运行以下代码

context.db.comments.findIndex(comment => comment.id === args.id)
这意味着
context
对象上有一个名为
db
的属性。因为
context
与原始
db
变量相同,这意味着原始
db
变量上有一个名为
db
的属性。因此,如果直接使用
db
变量,此代码也会起作用:

db.db.comments.findIndex(comment => comment.id === args.id)
如果您没有将
context
设置为
db
,而是将其值设置为具有名为
db
的属性的新对象,然后将该属性的值设置为
db

context = { db: db }
或使用速记法:

context = { db }
然后,您的函数调用将如下所示:

context.db.db.comments.findIndex(comment => comment.id === args.id)

这绝对正确,解决了我的问题。我花了很多时间想弄明白这一点。谢谢你抽出时间来帮助我。干杯。有什么具体的原因吗-1?留下a-1,不留下理由,并不能帮助我改进我的问题,让其他人发现它有用。我希望得到一些反馈。谢谢