mongoose - GraphQL | Mongoose - 文档的所有权和权限
问题描述
我最近一直在尝试开发 GraphQL 和 Mongoose API。我以为我会从身份验证和权限开始,但在后者遇到了一些问题。
我有一个存储我的用户的猫鼬集合(用户)。猫鼬模式看起来像这样:
const { composeMongoose } = require("graphql-compose-mongoose");
const User = new Schema(
{
name: { type: String, required: true },
email: { type: String, required: true },
// [...]
},
);
module.exports = {
User: User,
UserSchema: mongoose.model("users", User),
UserTC: composeMongoose(mongoose.model("users", User)),
};
我有另一个看起来像这样的集合(成分):
const Ingredient = new Schema(
{
name: String,
ownerId: String,
}
);
module.exports = {
Ingredient: Ingredient,
IngredientSchema: mongoose.model("ingredients", Ingredient),
IngredientTC: composeMongoose(mongoose.model("ingredients", Ingredient)),
};
我一直在尝试使用 graphql-compose 来简化为应用程序的 GraphQL 部分创建模式。除此之外,我还尝试制作中间件来检查 ownerId 字段是否等于存储在我的上下文中的用户。我已成功获取用户,但无法获取文档并检查文档本身。
const applyResolver = (resolver) => {
var tmpResolver;
if (typeof resolver === "object") {
if (typeof resolver.permission === "function") {
tmpResolver = resolver.resolver.wrapResolve((next) => (rp) => {
resolver.permission(rp); //This function is meant to throw if an error happens.
return next(rp);
});
} else {
tmpResolver = resolver.resolver;
}
} else {
tmpResolver = resolver;
}
return tmpResolver;
};
我的问题是我无法将文档传递给权限函数,从而检查参数是否匹配。
有什么方法可以用 graphql-compose 做到这一点,还是我必须开始寻找另一种方法来做到这一点?
如果缺少任何信息,请告诉我。
解决方案
推荐阅读
- unix - 解析具有多行的文件并用管道替换每个第一次出现
- visual-studio - 使用执行 SQL 任务在 SSIS 中执行过程的问题
- java - 检查字符串数组然后将其写入文件的最有效方法
- php - 带有 ACF 中继器和 PHP reset_rows 的增量计数器
- javascript - 将十六进制 HTML 颜色存储为数值转换返回不同的颜色
- r - 如何根据 R 中的其他列复制行以将数据回填到某个日期?
- ruby - 尝试将我的密码详细信息解析为 yaml,而不是手动输入
- ruby-on-rails - 如何检查对象上的 nil?
- javascript - React App - 帮助我找到无限渲染循环的原因
- python - Kafka消费率下降