我有
export const getPicture = {
type: GraphPicture,
args: {
type: new GraphQLNonNull(GraphQLInt)
},
resolve(_, args) {
return Picture.findByPrimary(args.id);
}
};
export const getPictureList = {
type: new GraphQLList(GraphPicture),
resolve(_, __, session) {
return Picture.findAll({where: {owner: session.userId}});
}
};
Run Code Online (Sandbox Code Playgroud)
和
const query = new GraphQLObjectType({
name: 'Queries',
fields: () => {
return {
getPictureList: getPictureList,
getPicture: getPicture
}
}
});
const schema = new GraphQLSchema({
query: query,
mutation: mutation
});
Run Code Online (Sandbox Code Playgroud)
哪个投掷:
Error: Queries.getPicture(type:) argument type must be Input Type but …
Run Code Online (Sandbox Code Playgroud) 来自Elixir文档:
:applications
- 应用程序在运行时依赖的所有应用程序.默认情况下,此列表是从依赖项中自动推断出来的.必须在中指定任何额外的Erlang/Elixir依赖项:extra_applications
.混合和其他工具使用应用程序列表,以便在启动应用程序本身之前启动依赖项.
:extra_applications
- 您希望在应用程序之前启动的Erlang/Elixir应用程序列表.例如,Elixir:logger
或Erlang的:crypto
.
如果:applications
自动推断列表,那么在我们应该添加应用程序:applications
而不是:extra_applications
?时,有哪些示例场景?反之亦然?
我正在重构(为了好玩,哈哈)我的redux应用程序来传递.在redux应用程序中,失败的事件将使用失败消息调度操作.
这将由"警报"减速器拾取,然后该减速器将向用户发出警报.这将在被删除之前保持在全局状态x秒.
Alert组件将处于空状态,直到发送警报以填充它.
如何在Relay下完成?有没有办法只改变商店而不是调度GraphQL突变?
谢谢您的帮助 :)
我有一个Elixir伞形应用程序.伞下的应用程序使用Logger.我想为应用程序添加后端(logger_logstash_backend):logger
.所以,我需要deps
在混合文件中添加它作为函数的依赖项.
在伞形应用程序的最外层混合文件中,deps
功能状态的文档:
此处列出的依赖项仅适用于此项目,无法从apps文件夹中的应用程序访问
这意味着我必须将后端模块添加为伞下每个应用程序的依赖项.但是,这样做会导致几个问题:
稍后将单个应用程序移出单独的库变得更加困难.
保护伞下的各个应用程序实际上并不依赖于自定义:logger
后端模块.他们没有默认的:console
后端.但我想只为prod环境增加一个后端.因此,更多的是跨应用程序问题,我不得不单独为每个应用程序添加依赖项.
你知道更好的策略吗?它是什么?
我正在使用 Facebook Graph API v2.8 来获取如下页面提要:
/page-id/posts?fields=attachments{media,title},id,message...
Run Code Online (Sandbox Code Playgroud)
如果帖子有附件,我希望我的请求返回attachments.media.image 路径中每个附件的完整尺寸图像。目前,它仅返回标准尺寸(380x380px 至最大 720x720px)的方形图像。
有没有办法进一步指定查询来实现这一点?就像是:
fields=attachments{media{image.type(full)},title]},id....
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我不想向媒体/对象端点发出另一个请求。
PS:当前响应中的 url 指向 php 服务,其中包含宽度和高度参数,可以省略该参数以获得完整尺寸的图像。
https://external.xx.fbcdn.net/safe_image.php?d=AQAkZcYtE-TiVzTj&w=542&h=542&url=fbstaging%3A%2F%2Fgraph.facebook.com%2Fstaging_resources%2FMDExMDE1NDcxNzI3Njg3Mjc2MDoxMjE3ODEyMjE%3D&cfs=1&sx=104&sy=0&sw=542&sh=542&l
Run Code Online (Sandbox Code Playgroud)
然而,由于该 URL 中也有一个哈希值,我真的不想做正则表达式来删除响应图像 URL 的宽度和高度参数来获取全尺寸图像。
编辑:我也不能真正使用 full_picture 字段,因为它只会给我第一个(主)附件的 URL。我正在查找所有附件的媒体 URL。
我有一个客户端服务器和一个API,都使用Apollo。当用户使用Facebook登录时,我想将令牌发送到客户端服务器,然后将其附加到对API进行的每个请求的标头中。不使用会话。
API的外观如下,当用户使用Facebook登录时,此API会成功生成令牌(我也在后台检查数据库中的用户)。
// API running on port 3010
app.use(expressJwt({
secret: authConfig.jwt.secret,
credentialsRequired: false,
getToken: req => req.cookies.id_token,
}));
app.use(passport.initialize());
app.get('/login/facebook',
passport.authenticate('facebook', { scope: ['email'], session: false }),
);
app.get('/login/facebook/return',
passport.authenticate('facebook', { failureRedirect: 'http://localhost:3000/login', session: false }),
(req, res) => {
const expiresIn = 60 * 60 * 24 * 1; // 1 day
const token = jwt.sign(req.user, authConfig.jwt.secret, { expiresIn });
res.redirect(`http://localhost:3000?token=${token}`); // Redirect to client and append token to param
},
);
Run Code Online (Sandbox Code Playgroud)
我的问题是,现在如何安全地将此令牌交给客户端?我已经读过这个和this,这使我不得不在参数中传递令牌,但是我不确定我在做什么是否安全。 …
我已经定义了Elixir行为X
.回调start_link
被指定为:
@callback start_link(
args :: producer_args,
opts :: GenServer.options
) :: GenServer.on_start
Run Code Online (Sandbox Code Playgroud)
其中producer_args
type被定义为:
@type producer_args :: %{job_queue_name: String.t}
Run Code Online (Sandbox Code Playgroud)
在Y
实现该行为的客户端代码中,start_link
定义为:
def start_link(args = %{job_queue_name: _job_queue_name, redis_url: _redis_url}, opts) do
GenStage.start_link(__MODULE__, args, opts)
end
Run Code Online (Sandbox Code Playgroud)
透析器不喜欢它.它说,
(#{'job_queue_name':=_, 'redis_url':=_, _=>_})
is not a supertype of
#{'job_queue_name':=binary()}
Run Code Online (Sandbox Code Playgroud)
在继承方面,子类型扩展了超类型.因此,定义的行为(X)应该被认为是超类型.实现行为(Y)的模块应被视为子类型.显然Dialyzer应该问这个问题:
是
#{'job_queue_name':=binary()}
超类型(#{'job_queue_name':=_, 'redis_url':=_, _=>_})
?
相反,它以相反的方式提出问题.为什么?
supertype
透析器中的定义与OOP继承的讨论相同吗?如果没有,那么它是什么?我试图在透析器的上下文中找到超类型的定义,但没有找到.
我已经为此苦苦挣扎了一个多小时,但似乎无法让它发挥作用。
我正在将 GraphQL 的 ruby 实现与 Rails 一起使用,并且我正在尝试使用 GraphQL 执行 User.all。我有以下 QueryType 定义字段用户。
QueryType = GraphQL::ObjectType.define do
name "Query"
description "The query root for this schema"
field :users do
types[IndexUserType]
resolve -> () {
User.all
}
end
end
Run Code Online (Sandbox Code Playgroud)
和 IndexUserType 定义如下:
IndexUserType = GraphQL::ObjectType.define do
name "IndexUserType"
description "An Index User"
field :firstname, types.String
end
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下查询获取所有用户的名字:
query={ users { firstname } }
Run Code Online (Sandbox Code Playgroud)
通常我可以对 Has-Many 关系进行以下操作,但是这不起作用,我认为这是因为没有父级就无法设置“obj”。
resolve -> (obj, args, ctx) {
obj.cousins
}
Run Code Online (Sandbox Code Playgroud)