小编wbr*_*tra的帖子

React Apollo Client 不发送 cookie

我已经尝试按照 Apollo Client 上的说明将 cookie 与 graphql 请求一起发送,但是 express 服务器没有接收任何 cookie,当我检查请求时,它显示没有 cookie 与响应一起发送。

在此页面之后:

https://www.apollographql.com/docs/react/recipes/authentication.html

我的代码是

const link = createHttpLink({
  uri: 'http://localhost:3000/api/graphql',
  opts: {
    credentials: 'include',
  }
});

const client = new ApolloClient({
  link,
  cache: new InMemoryCache()
});
Run Code Online (Sandbox Code Playgroud)

我的设置非常简单,我只是在 localhost:3000 上使用 create-react-app 服务器,将 api 请求发送到 localhost:5000(快速 api 服务器)。我可以通过 localhost:3000 在其他路由上设置和检索 cookie,只有 Apollo Client 不发送它们。

cookies express react-apollo

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

在Ubuntu 16.04上安装Vapor Toolbox

我正在使用Ubuntu 16.04并且无法遵循Vapor Toolbox的安装指南.我使用了指南中描述的swiftenv,并安装了Swift的Ubuntu 15.10版本,但是尝试安装工具箱会导致以下结果:

$ curl -sL toolbox.vapor.sh | bash
?  Compatible
Downloading...
Compiling...
<unknown>:0: error: build had 1 command failures
error: exit(1): /home/william/.swiftenv/versions/DEVELOPMENT-SNAPSHOT-2016-09-06-a/usr/bin/swift-build-tool -f /home/william/workspace/.vapor-toolbox-0.10.2/vapor-toolbox/.build/release.yaml
Installing...
bash: line 24: .build/release/Executable: No such file or directory
Use vapor --help and vapor <command> --help to learn more.
Run Code Online (Sandbox Code Playgroud)

尝试'蒸汽'会导致:

$ vapor
vapor: command not found
Run Code Online (Sandbox Code Playgroud)

ubuntu ubuntu-16.04 vapor

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

Rails 5 ActionCable从URL参数建立流

我对Rails几乎全新,或者我相信我会知道如何自己回答这个问题.我只是想修改基本的ActionCable演示中创建的基本聊天应用程序:https://medium.com/@dhh/rails-5-action-cable-demo-8bba4ccfc55e#.6lmd6tfi7

我没有只有一个聊天室,而是想拥有多个聊天室,所以我routes.rb通过添加以下行来修改我:

get '/rooms/show/:topic', to: 'rooms#show'

所以现在我可以根据不同的主题访问不同的聊天室.房间控制器/app/controllers/rooms_controller.rb处理这些路线没有问题:

class RoomsController < ApplicationController
  def show
    @topic = params[:topic]
    @messages = Message.all
  end
end
Run Code Online (Sandbox Code Playgroud)

但是这个参数没有传递给app/channels/room_channel.rb我,我只是不确定我需要做什么修改.我目前的尝试:

class RoomChannel < ApplicationCable::Channel
  def subscribed
    stream_from "room_channel_#{params[:topic]}"
  end
Run Code Online (Sandbox Code Playgroud)

只返回"room_channel_"

ruby-on-rails

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

mapDispatchToProps如何在React Redux中工作

我看了终极版的egghead.io教程,觉得我有什么终极版是某种意义上试图做的,但它的实际工作方式仍然是神秘的给我。我使用react-redux connect方法实现了Dan的简单计数器应用程序,但是我不太了解我的实现。我尝试了两种可能的方法:

没有通过调度:

const mapDispatchToProps = {
  upIt: () => {
    return ({type:'INCREMENT'}
  )
  },
  downIt: () => {
    return({type:'DECREMENT'})
  }
}
Run Code Online (Sandbox Code Playgroud)

通过调度:

const mapDispatchToProps = dispatch => ({
  upIt: () => {
    dispatch({type:'INCREMENT'}
  )
  },
  downIt: () => {
    dispatch({type:'DECREMENT'})
  }
})
Run Code Online (Sandbox Code Playgroud)

计数器使用这两个选项中的一个或两个来工作,但是我不确定第一个选项(我从不称其为“ dispatch”)如何设法连接到store.dispatch方法。有什么理由比另一种我更喜欢一种编写方法的方法吗?

reactjs react-redux

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

发送canvas.toDataURL()作为FormData

我正在尝试使用html2canvas将DOM元素呈现为.png图像,然后将其上传到服务器。这是我的代码:

import React, { Component, PropTypes } from 'react';
import html2canvas from 'html2canvas';
import axios from 'axios';


const sendScreenshot = (img) => {
  const config = {
      headers: {
          'content-type': 'multipart/form-data'
      }
  }
  let data = new FormData();
  data.append('screenshot', img);      
  return axios.post('/api/upload', data)
}

export default class Export extends Component {

  printDocument() {
    const input = document.getElementById('divToPrint');
    html2canvas(input).then(canvas => {
      document.body.appendChild(canvas);
      const imgData = canvas.toDataURL('image/png');
      sendScreenshot(imgData)
    });
  }

  ...
Run Code Online (Sandbox Code Playgroud)

我可以看到DOM元素已正确转换为图像,因为我可以看到它附加在页面上。

在node.js服务器端,我可以看到表单正在通过,但是“截屏”是作为文本字段而不是文件接收的。我正在使用multer,并且确认至少在使用Postman时,我可以正确接收和保存文件上传。

所以我想基本的问题是我需要指出我要附加到FormData的项是文件,而不是文本字段。但是我不知道该怎么做。我尝试使用带有三个参数的append,并尝试将imgData转换为如下所示的Blob:

const blob = new Blob([img], {type: 'image/png'});

但是结果并没有使我更接近我想要的。

javascript multipartform-data reactjs multer

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

调试:用Python /随机随机播放卡片组

我知道标题听起来很无聊,因为很多人已经问过这个话题了.我希望它可以帮助我深入了解随机模块的工作原理.问题是,我写的,我认为应该是相同的两个不同的功能,但我得到的结果是不相同的,我不明白为什么.

我希望最终得到一个"洗得很好的套牌".我只关心卡片是红色还是黑色,所以我的套牌非常简单.我称之为"1"红色和"0"黑色.

我的想法是通过附加1(红色),如果random.random()是> .5,或者除了0(黑色),然后在我达到26(甲板的一半)时自动附加1或0来构建套牌)一种颜色.但是出了点问题.deckmaker()无法正常工作,尽管deckmaker2()可以正常工作.谁能提供洞察力?

import random

def deckmaker():
    deck = []
    for i in range(52):
        if deck.count(0) == 26:
            deck.append(1)
        elif deck.count(1) == 26:
            deck.append(0)
        elif random.random() > .5:
            deck.append(0)
        else:
            deck.append(1)
    return deck

def deckmaker2():
    newdeck = []
    for i in range(26):
        newdeck.append(0)
    for i in range(26):
        newdeck.append(1)
    deck = []
    for i in range(52):
        x = random.randint(0,len(newdeck)-1)
        deck.append(newdeck.pop(x))
    return deck
Run Code Online (Sandbox Code Playgroud)

注意:在写这个问题的时候,我发现了random.shuffle列表操作符,它与我的第二个函数做了同样的事情,所以当然让洗牌后的表变得容易.但我仍然想知道为什么我的原始代码不会做同样的事情.

编辑:抱歉对deckmaker()的确切问题含糊不清.问题是,我并不完全明白什么是错的.它与它产生的甲板上的事实有关,当你逐一"翻转"卡片时,有一些策略可以让你预测"下一张牌"是红色还是黑色不是使用random.shuffle创建的套牌

编辑2: [更多信息]我将解释我如何确定甲板制造商不起作用,以防重要.我在写这个程序模型拼图张贴在这里:http://www.thebigquestions.com/2013/12/17/tuesday-puzzle-4/

我的策略是记住最后几张牌,然后用这些信息决定何时决定拿下一张牌.我想也许在连续获得5张"黑色"牌之后,现在是预测"红色"的好时机.我是这样实现的:

mycards = []

for j in range(1000):
    mydeck = deckmaker(52)
    mem_length …
Run Code Online (Sandbox Code Playgroud)

python random algorithm shuffle

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

如何在Python中命名我的对象?

我知道这是一个非常简单的问题,但不幸的是我不知道足以有效地搜索答案.我应该已经知道的任何答案或链接将不胜感激.

我想要做的是在Python中创建一个环境,我有一堆乌龟在做各种事情(它基本上就像麻省理工学院的StarLogo).

class Turtle:
    def __init__(self,x,y):
        self.xpos = float(x)
        self.ypos = float(y)
        self.head = 0.0

numTurtles = 4
for i in range(numTurtles):
    ...
MyTurtles = [...]
Run Code Online (Sandbox Code Playgroud)

每只乌龟都有一个x位置,一个位置和一个标题(以弧度表示).我想要做的就是创建它们并告诉它们站在哪里(它们的x和y坐标),然后将所有的乌龟放入一个列表中,以便稍后我可以告诉整个组采取某种行动.

我希望能够改变海龟的数量,否则我只会称它们为[a,b,c,d].但我认为必须有更好的方法.

python

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