小编Dam*_*nni的帖子

如何将GraphQL变异从一个服务器发送到另一个服务器?

我想将一些Slack消息保存到GraphQL后端.我可以使用Slack API以及他们所谓的"Slack App Commands",因此每次向Slack通道发送消息时,Slack会自动向我的服务器发送HTTP POST请求,并将新消息作为数据.

我正在考虑使用AWS lambda函数将此发布请求转发到我的GraphQL服务器端点(我正在使用GraphCool).我是GraphQL的新手,我使用Apollo从浏览器创建突变.现在我需要从我的节点服务器(AWS Lambda函数)而不是浏览器发送变异.我怎样才能做到这一点?

谢谢.

lambda apollo aws-lambda graphql graphcool

9
推荐指数
1
解决办法
3264
查看次数

AWS S3:我应该使用 POST 还是 PUT 请求来上传文件?

我想知道使用 POST 或 PUT 请求将文件上传到 Amazon Web Services S3 的优缺点。

我已经读过像一些SO问题这一个,但我想使用AWS API时知道具体差异。

我设法同时使用了两者,但几乎看不出区别。我通过 AJAX 和 XMLHTTPRequest 对象使用 PUT 和 POST,直接从浏览器上传,node.js 后端生成签名。

我注意到的不同之处在于,当我生成签名时,我无法使用 PUT 限制服务器端的内容类型和长度,但这可能是因为我现在才刚刚学习它。

javascript ajax amazon-s3 amazon-web-services

7
推荐指数
1
解决办法
1万
查看次数

在 Node.js 服务器中实现安全且生产就绪的身份验证系统,而无需依赖第三方提供商

我习惯使用 Meteor JavaScript 框架来开发 Web 应用程序,该框架负责处理身份验证。我现在第一次开发一个 Web 应用程序,在后端使用 Node.js (Express) + GraphQL 堆栈,在前端使用 React,所以我必须自己处理身份验证。

我读了很多有关它的内容,并且我喜欢基于令牌的身份验证的想法。我正在考虑使用 JWT,这样我就不必处理会话了。

我知道有很多教程,但每个教程总是有一种免责声明,例如:“本教程尚未准备好用于生产,仅将其用于教育目的......”。每次我读到有关身份验证的内容时,它似乎都很难实现,我不应该自己实现它。但我不想使用 AWS Cognito、Google Cloud Platform 等服务提供商,因为我想将用户数据保留在我自己的系统和数据库中。我不想受第三方提供商的束缚。

我知道如何生成 jwt 令牌、刷新令牌、如何验证它们等等...我能够开发一个工作身份验证系统,但由于所有这些评论,我永远不确定我是否以安全和生产就绪的方式进行操作我可以在网上阅读。

那么,您建议如何在 Node.js 服务器中实现安全且可用于生产的身份验证系统,而无需依赖第三方提供商。您知道有关它的完整教程或文档吗?

authentication node.js

6
推荐指数
1
解决办法
1247
查看次数

如何在Chart.js 2中设置轴的步长?

我使用带有3个Y轴的chart.js创建了一个简单的折线图:https ://codepen.io/anon/pen/dZVgKw

如您所见,最后一个数字是10到20,中间没有任何数字。如何在此处设置步长?

这是我添加斧头的方式:

{
  id: 'C',
  type: 'linear',
  position: 'left',
  ticks: {
    max: 10,
    min: 20,
  },
}
Run Code Online (Sandbox Code Playgroud)

谢谢。

javascript chart.js chartjs-2.6.0

5
推荐指数
1
解决办法
8605
查看次数

Apollo 客户端缓存没有按我的预期工作

我的问题:

我对 GraphQL 还很陌生,我正在使用 Apollo 服务器和客户端开发我的第一个全栈应用程序,这是一个简单的博客。

在客户端,我在两个不同的页面中使用相同的查询,但使用不同的变量。查询是通过 ID 或 slug 查询博客文章,具体取决于我使用的页面。所以结果是一样的,只是查询变量发生了变化。

当我在一个页面中使用查询时,我认为由于 Apollo 缓存,查询不会在第二页上运行。但事实并非如此。查询在第二个页面中再次运行,当然返回的结果与其他页面中的结果相同。

为什么 Apollo 在这种情况下不使用缓存?

这是我使用的代码:

在服务器端,我有一个非常基本的查询来从博客中获取文章,可以通过 ID 或 Slug 获取:

type Query {
  ...
  article(id: ID, slug: String): Article
  ...
}
Run Code Online (Sandbox Code Playgroud)

在客户端,如果文章已发布,我会通过 slug 查询文章;如果文章仍是草稿,我会通过 ID 查询文章。

通过 slug 进行查询:

<Query
  query={article}
  variables={{ slug }}
  fetchPolicy="cache-and-network"
>
  {({ loading, error, data }) => {
    return (
      <Article
        loading={loading}
        article={data && data.article}
      />
    );
  }}
</Query>
Run Code Online (Sandbox Code Playgroud)

通过ID查询是相同的,除了变量param使用ID:

<Query
  query={article}
  variables={{ id }}
>
  {({ loading, error, data }) => …
Run Code Online (Sandbox Code Playgroud)

apollo graphql react-apollo apollo-client

4
推荐指数
1
解决办法
5581
查看次数

在 Typescript 和 React 中使用枚举作为 event.target.value

我有一个枚举定义类别,可以通过表单单选输入进行选择:

enum Category {
  PRACTICAL = 'practical',
  POSITIONING = 'positioning',
}
Run Code Online (Sandbox Code Playgroud)

如何在我的单选组 onChange 处理函数中使用此枚举?这就是我目前正在做的事情:

const [filter, setFilter] = useState<Category>(Category.POSITIONING);

const handleFilterClick = (event: React.ChangeEvent<HTMLInputElement>) => {
  const { value } = event.target;
  setFilter(value); // <== Argument of type 'string' is not assignable to parameter of type 'SetStateAction<Category>'
};
Run Code Online (Sandbox Code Playgroud)

setFilter(value)不起作用,因为 typeof 值string代替了Category

我该如何处理这种情况?

enums typescript reactjs

4
推荐指数
1
解决办法
3793
查看次数

Draft-JS - 如何使用一些不可编辑的文本创建自定义块

在 Draft-JS 中,我想要一个基本的自定义块,渲染一个<h1>元素。我想在 my 之前添加一些h1用户无法编辑的文本。此处的文本是为了通知人们此块是用于 Title 的。所以我想在不可编辑的块前添加“TITLE”。

在 Draft JS 中实现这一目标的最佳方法是什么?

javascript reactjs draftjs

2
推荐指数
1
解决办法
5287
查看次数

如何使用 AWS CodeBuild npm 安装所有函数目录

我使用 AWS Cloud Formation 作为我的后端,具有以下项目文件结构:

| template.yaml
| lambda-functions
  | ---- function-1
       |----function.js
       |----package.json
  | ---- function-2
       |----function.js
       |----package.json
Run Code Online (Sandbox Code Playgroud)

在 AWS 构建规范中,我做aws cloudformation package了一个aws cloudformation deploy.

如果我想让它工作,我需要npm installfunction-1function-2子文件夹上都做,并将子文件夹提交node_modules到 git repo。

如何直接从构建规范在我的所有子文件夹上运行 npm install 以便我不必提交 node_modules 子文件夹?

amazon-web-services node.js aws-codebuild

2
推荐指数
1
解决办法
2471
查看次数