如何解决我的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 举报,一经查实,本站将立刻删除。