小编fey*_*chu的帖子

Clojure Ring是否为每个请求创建一个线程?

我正在制作一个Messenger bot,我使用Ring作为我的http框架.

有时我想在机器人发送的消息之间应用延迟.我的期望是使用它是安全的,Thread/sleep因为这会使活动线程休眠,而不是整个服务器.是这样,还是应该诉诸clojure/core.async

这是我将要编写的代码async:

  (match [reply]

    ; The bot wants to send a message (text, images, videos etc.) after n milliseconds
    [{:message message :delay delay}] 
    (do
      (Thread/sleep interval delay)
      (facebook/send-message sender-id message))
    ; More code would follow...
Run Code Online (Sandbox Code Playgroud)

一个链接到环代码,其中这种意义上的行为是明确的,以及任何其他有关此问题的解释.

clojure ring

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

将csurf与react-server一起使用

我想在响应服务器内添加csurf作为通用应用程序的快速中间件.

我想要实现的是将csrf标记添加到react组件中的表单中的隐藏输入,以维护服务器呈现的网站提供的相同csrf保护流,但是在SPA中.

这在技术上是否可以在react-server中使用?如果是这样,我如何通过页面(理想情况下)将响应对象中可用的csrf标记传递给react组件?

javascript csrf node.js reactjs react-server

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

获取昨天在Clojure的约会

我需要以格式获取昨天的日期(不是基于用户,而是相对于服务器)YYYY-MM-DD.

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

date clojure

4
推荐指数
2
解决办法
487
查看次数

新的 package.json 包未显示在 Docker 容器中

我将 Docker 与 Docker Compose 一起使用,这些是我的文件:

#DOCKERFILE

FROM mhart/alpine-node 

# Create app directory
RUN mkdir -p /home/app

# Bundle app soure
COPY . /home/app

# From now on we work in /home/app
WORKDIR /home/app

# Install yarn and node modules
RUN echo -e 'http://dl-cdn.alpinelinux.org/alpine/edge/main\nhttp://dl-
cdn.alpinelinux.org/alpine/edge/community\nhttp://dl-
cdn.alpinelinux.org/alpine/edge/testing' > /etc/apk/repositories \
&& apk add --no-cache yarn \
&& yarn

EXPOSE 8080
Run Code Online (Sandbox Code Playgroud)

这是 dev 的 docker-compose 文件:

app:
  build: .
  command: yarn start:dev
  environment:
    NODE_ENV: development
  ports:
    - '8080:8080'
  volumes:
    - .:/home/app
    - …
Run Code Online (Sandbox Code Playgroud)

node.js docker dockerfile package.json docker-compose

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

JSX中的SVG-如何转换defs标签

我有一些SVG,它们的defs属性带有style标签。像这样:

<svg ...>
  <defs>
    <style>.cls-1,.cls-7{fill:#b2488d;}.cls-1,.cls-2,.cls-3,.cls-4,.cls-5,.cls-6{stroke:#671f4d;}</style>
  </defs>
  ...
</svg>
Run Code Online (Sandbox Code Playgroud)

我想在React中使用这些SVG,所以我想将它们转换为有效的JSX。我已经使用过svg2jsx之类的工具,但是它们将defs标签剥离了,所以样式属性不再存在。有没有一种方法可以通过在JSX中转换SVG 来保留defs带有style标签的?还是在这种情况下无法使用CSS类?

css svg jsx reactjs

4
推荐指数
2
解决办法
1549
查看次数

部署到AWS S3与github同步

我正在尝试使用 github 操作将静态站点部署到 AWS S3 和 Cloudfront。我的 Github Action 代码是:

name: deploy-container

on:
  push:
    branches:
      - master
    paths:
      - 'packages/container/**'

defaults:
  run:
    working-directory: packages/container

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
      - run: npm install
      - run: npm run build

      - uses: chrislennon/action-aws-cli@v1.1
      - run: aws s3 sync dist s3://${{secrets.AWS_S3_BUCKET_NAME}}/container/latest
        env:
          AWS_ACCESS_KEY_ID: ${{secrets.AWS_ACCESS_KEY_ID}}
          AWS_SECRET_ACCESS_KEY: ${{secrets.AWS_SECRET_ACCESS_KEY}}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试构建时出现了这些错误

Github 操作 1 Github 操作 2

amazon-s3 amazon-web-services amazon-cloudfront webpack github-actions

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

Clojure规范:如何验证一个或另一个地图

我有这个Clojure代码来定义我的回复对象的架构,它可以是

{:message {:text "Hello"} :delay 3000}

要么

{:action "typing_on" :duration 5000}

reply地图可以有:message:action并分别可选的键:delay:duration.

我试图用这种方式表达clojure.spec:

(s/def ::action #{"typing_on" "typing_off" "mark_seen"})
(s/def ::duration int?)
(s/def ::delay int?)
(s/def ::message map?)

(s/def ::message-reply (s/keys :req-un [::message]
                               :opt-un [::delay]))

(s/def ::action-reply (s/keys :req-un [::action]
                              :opt-un [::duration]))

(s/def ::reply (or ::action-reply ::message-reply))
Run Code Online (Sandbox Code Playgroud)

但是,在这种情况下,这些规范将true仅使用它们在or子句中找到的第一个模式进行验证::action-reply.我想要实现的是,无论是::action-reply或者::message-reply是有效的模式::reply.

clojure clojure.spec

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