2016-06-10 63 views
1

我跟着http://docs.apollostack.com/apollo-server/guide.html /和这个video并且想要尝试连接它到db在www.mlab.com。该项目连接到mlab和graphiql,但是当我在graphiql中运行查询时,我的查询得到空/未定义的值。基本graphQL Mongoose设置

这是schema.js

const typeDefinitions = ` 
type Biz { 
name: String 
address: String 
} 

type Query { 
biz(name: String, address: String): Biz 
} 

schema { 
query: Query 
} 
`; 

export default [typeDefinitions]; 

这是connectors.js:

// businesses in mongo DB 
    const MONGOLAB_URI = 'mongodb://user:[email protected]:64278/klik-mongodb'; 
    const mongo = Mongoose.connect(MONGOLAB_URI, function (err, res) { 
    if (err) { 
     console.log ('ERROR connecting to: ' + MONGOLAB_URI + '. ' + err); 
    } else { 
     console.log ('Succeeded connected to: ' + MONGOLAB_URI); 
    } 
    }); 

    const BizSchema = Mongoose.Schema({ 
    _id: Object, 
    address: String, 
    city: String, 
    country: String, 
    heading: String, 
    headingid: Number, 
    img_url: String, 
    name: String, 
    objectId: String, 
    phonenumber1: String, 
    website: String, 
    latitude: Number, 
    longitude: Number, 
    }); 

    const Biz = Mongoose.model('bizs', BizSchema); 

    export { Biz }; 

这是resolvers.js:

import { Biz } from './connectors'; 

    const resolvers = { 
    Query: { 
     biz(_, { name, address }) { 
     return Biz.find({ where: name, address }); 
     }, 
    }, 
    }; 

    export default resolvers; 

这是我的MLAB对象的示例:

{ 
       "_id": { 
        "$oid": "573e8c9b1379f0f2fad98290" 
       }, 
       "accountid": 1404, 
       "address": "737, Grand Rue,", 
       "city": "Port-au-Prince", 
       "country": "Haiti", 
       "createdAt": "10/26/2015 7:27:42 PM", 
       "heading": "Computer, Printers and Supplies", 
       "headingid": 323, 
       "img_url": "https://res.cloudinary.com/klik-io/image/upload/v1454850817/pages-jaunes-haiti-icon_sosoco.png", 
       "name": "A & M Entreprises", 
       "objectId": "0lw9lVl23j", 
       "phonenumber1": "+509 3770 0303", 
       "website": "http://868.ht" 
      } 

这是graphiql输出: enter image description here

+0

看看这个样板https://github.com/sibelius/graphql-dataloader-boilerplate –

回答

2

它看起来像你的BIZ解析器使用find(),这将返回一个列表。你想要的是findOne()。 PS:通常可以通过在相应的解析函数(或运行节点调试器)中添加打印语句来调试此类问题。

+0

谢谢。 findOne努力得到一个结果。我希望得到一个列表,这就是为什么我使用find()。感谢您抽出宝贵的时间。我仍然不知道我不知道什么。请尝试打印和调试器。再次感谢。 – idkjs