我的GraphQL突变未保存到我的MongoDB中

问题描述

正如标题所述,我的突变addEatery未保存到我的数据库中。在我的解析器中,查询效果很好,但由于某种原因而导致的突变却不起作用。我对GraphQL还是很陌生。

const Eatery = require("./server/models/Eatery");

module.exports = db => ({
  Query: {
    eateries: async () =>
      await db
        .collection("eateries")
        .find()
        .toArray()
  },Mutation: {
      addEatery: async (_,{id,name,description,address,city,postCode,phoneNumber,businessHours,foodType,veganFriendly,vegetarianFriendly,halal,kosher,dogFriendly,childFriendly,ethical,alcohol,price,website }) => {
        const eatery = new Eatery({id,website});
        eatery.save();
        return eatery;
    },} 
});

现在,它返回我在GQL游乐场中进行突变的新数据的对象,但是当我检查DB时,那里还没有更新。

由于某些原因,当我使用await时,此代码不满意。它只是给了我一个来自服务器的500响应:(

  Mutation: {
      addEatery: async (_,website});
        await eatery.save();
        return eatery;
    },} 

我正在使用Netlify Lambda函数来托管它。

我的端点索引文件如下:-

const { ApolloServer } = require("apollo-server-lambda");
const typeDefs = require("./typedefs");
const resolvers = require("./resolvers");
const connectToMongoDB = require("./db");

exports.handler = async function(event,context) {
  const db = await connectToMongoDB();
  const server = new ApolloServer({
    typeDefs,resolvers: resolvers(db)
  });
  return new Promise((yay,nay) => {
    const cb = (err,args) => (err ? nay(err) : yay(args));
    server.createHandler()(event,context,cb);
  });
};

我的数据库文件

const MongoClient = require("mongodb").MongoClient;
const URI = process.env.DB_URI;
const DB_NAME = process.env.DB_NAME;

let cachedDb = null;
module.exports = () => {
  if (cachedDb && cachedDb.serverConfig.isConnected()) {
    return Promise.resolve(cachedDb);
  }
  return MongoClient.connect(URI,{ useNewUrlParser: true }).then(client => {
    cachedDb = client.db(DB_NAME);
    return cachedDb;
  });
};

这是typeDefs

const { gql } = require("apollo-server-lambda");

module.exports = gql`
  type Eatery {
    id: String!
    name: String!
    description: String
    businessHours: String
    address: String!
    city: String!
    postCode: String!
    phoneNumber: String
    foodType: String!
    veganFriendly: Boolean
    vegetarianFriendly: Boolean
    halal: Boolean
    kosher: Boolean
    dogFriendly: Boolean
    childFriendly: Boolean
    ethical: Boolean
    website: String
    alcohol: Boolean
    price: String
  }
  type Query {
    eatery(id: String!): Eatery
    eateries: [Eatery]
    getFoodType(foodType: String): [Eatery]
  }
  type Mutation {
    addEatery(id: String,name: String!,description: String!,businessHours: String,address: String!,city: String!,postCode: String!,phoneNumber: String,foodType: String!,veganFriendly: Boolean,vegetarianFriendly: Boolean,halal: Boolean,kosher: Boolean,dogFriendly: Boolean,childFriendly: Boolean,ethical: Boolean,alcohol: Boolean,price: String,website: String): Eatery
    editEatery(id: String,name: String,description: String,address: String,foodType: String,website: String): Eatery
    deleteEatery(id: String,website: String): Eatery
  }
`;

任何关于为什么这种突变实际上没有将数据保存到我的MongoDB的想法将不胜感激!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)