【发布时间】:2017-12-21 04:38:25
【问题描述】:
我正在尝试使用 graphql 和 mongoose 从 mongodb 数据库中读取一些数据,但每次查询数据库时它都会返回 @987654321 @ 但不会引发错误。 代码如下:
// Controller.js
exports.user_read = function(id) {
return new Promise((resolve, reject) => {
Contact.findById(id, function(err, user) {
err ? reject(err) : resolve(user);
}
});
}
// Resolver.js
var contact = require('Controller');
...
// root object passed as rootValue to graphqlHTTP
getUser: ({ id }) => {
contact.user_read(id)
}
...
任何提示和帮助将不胜感激。
附言这似乎也发生在我所有在controller.js 文件中采用相同Promise 格式的查询中。
【问题讨论】:
-
您提供的代码似乎没有任何问题,只是您不需要将
Contact.findById包装在新的 Promise 中——它应该已经返回了一个 Promise只要你省略回调。无论哪种方式,这都不应该是一个问题。如果您可以通过调用 findById outside GraphQL 获得所需的数据,那么问题可能出在您的 GraphQL 设置上,您应该发布完整的架构和根对象。如果您无法让 findById 返回任何内容,即使在任何解析器之外,您也需要包含您的联系人模型以及您连接到数据库的方式。
标签: mongodb mongoose graphql graphql-js