【发布时间】:2021-09-16 18:06:27
【问题描述】:
我正在尝试在类别和产品之间建立一对多关系,但在我放置解析器后出现错误,这是我的参考代码。
产品解析器:
async getProductByCategory(mainCategory, {}) {
try {
const product = Product.find({ mainCategory: mainCategory._id });
if (product) {
return product;
} else {
throw new Error("Product Not Found");
}
} catch (err) {
throw new Error(err);
}
},
MainCategory 解析器:
async getCategoryByProduct(product, args) {
try {
const mainCategory = MainCategory.findById(product._id);
if (mainCategory) {
return mainCategory;
} else {
throw new Error("Main Category Not Found");
}
} catch (err) {
throw new Error(err);
}
},
主解析器:
const productsResolvers = require("./products");
const mainCategoriesResolvers = require("./mainCategories");
module.exports = {
Product: {
mainCategory: productsResolvers.getProductByCategory,
},
MainCategory: {
products: mainCategoriesResolvers.getCategoryByProduct,
},
Query: {
...productsResolvers.Query,
...mainCategoriesResolvers.Query,
},
Mutation: {
...productsResolvers.Mutation,
...mainCategoriesResolvers.Mutation,
},
};
typeDefs:
type Product {
id: ID!
mainCategory: MainCategory
}
type MainCategory {
id: ID!
products: [Product]
}
如果您需要更多代码参考,请告诉我,以便我给您。提前致谢
【问题讨论】:
-
你使用 ORM 还是 ?
-
@Dani 是的,我使用 mongodb 来存储数据
-
@Dani 我在这里使用 MERNG 堆栈(MongoDb、Express、React、Node 和 Graphql)和 Apollo 进行状态管理
标签: mongodb mongoose graphql apollo apollo-server