【问题标题】:query mongodb with express and graphql使用 express 和 graphql 查询 mongodb
【发布时间】:2019-07-14 23:50:02
【问题描述】:

我们如何在 mongo db 中使用 graph ql 这是我的解析器代码

var resolvers = {
    test:()=>{
        return getproducts()
    },
 }

 const getproducts=()=>{
    return new Promise((resolve,reject)=>{
        Product.find({}).exec()
        .then(resp=>{
            console.log("response is ",resp);
            let stringData = resp.toString()
            resolve(stringData);
        }).catch(err=>{
            console.log('error is ',err);
            reject(err);
        })
    })
 }

架构是:

test:String!

我正在将我的响应转换为字符串,在模式中我们如何给它产品模式的类型?在此处输入代码

【问题讨论】:

    标签: node.js express graphql express-graphql


    【解决方案1】:

    您的 getproducts 应该返回一个与您的 GraphQL 架构的属性匹配的对象,我需要更多代码才能正确回答您的问题,但这里有一个快速解决您的问题的方法,请记住 mongodb 产品架构应该匹配GraphQL Schema。

    var resolvers = {
        Query: {
           getProducts: () => {
              return getproducts();
           },
        },
     }
    
     const getproducts = () => {
        return new Promise((resolve,reject)=>{
            Product.find({}).exec()
            .then(resp=>{
                console.log("response is ",resp);
                // let stringData = resp.toString()
                resolve(resp);
            }).catch(err=>{
                console.log('error is ',err);
                reject(err);
            })
        })
     }
    

    GraphQL 架构

    type Product {
       test: String
    }
    
    type Query {
       getProducts: [Product] // Query returns an array of products
    }
    

    【讨论】:

    • 我想达到这样的效果 :medium.com/@sarkis.tlt/… 产品也不是 graphql 类型,所以不能直接通过。
    • @subhashishnegi 你能分享你的猫鼬模式吗?
    • const mongoose = require('mongoose'); const productSchema = mongoose.Schema({ _id: mongoose.Schema.Types.ObjectId, name:{type:String, required:true}, price:{type:Number, required:true} }) module.exports = mongoose.model ('Product', productSchema)
    • 只是为了理解,您不希望您的 graphql 架构与 mongodb 架构匹配?
    猜你喜欢
    • 2020-10-05
    • 2021-09-09
    • 2016-04-07
    • 2018-11-10
    • 2017-09-23
    • 2020-04-30
    • 2017-08-10
    • 2021-05-18
    • 2020-09-11
    相关资源
    最近更新 更多