小编Bug*_*rUK的帖子

MySQL Workbench:当"MySQL服务器已经消失"时重新连接到数据库?

我在MySQL工作台中打开了很多标签和查询.我在睡觉前把它打开了,但今天早上我MySQL server has gone away在尝试运行查询时遇到错误.

数据库已启动,如果我在MySQL工作台上打开一个新连接,我可以连接到它,但是当前的连接已经死了.我该如何重新连接?

我不想打开新连接,因为我必须复制我的查询和标签.

mysql-workbench

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

为什么Redux减速机称为减速机?

虽然学习Redux我遇到了Reducers.文件说明:

reducer是一个纯函数,它接受前一个状态和一个动作,并返回下一个状态.(previousState,action)=> newState.它被称为reducer,因为它是你传递给Array.prototype.reduce(reducer,?initialValue)的函数类型.

MDN将该reduce方法描述为:

reduce()方法对累加器和数组的每个值(从左到右)应用函数以将其减少为单个值.

我仍然对Redux定义减速器的原因感到困惑,因为它没有任何意义.其次,MDN描述似乎也不正确.该reduce方法并不总是用于减少单个值.当用于代替链接时,它可以用来代替mapfilter实际上更快.

MDN描述不正确吗?

回到Redux定义的reducer,它指出:

它被称为reducer,因为它是你传递给Array.prototype.reduce(reducer,?initialValue)的函数类型

我的印象是Redux中的reducer负责修改状态.减速器示例:

const count = function(state, action) {
    if(action.type == 'INCREMENT') {
        return state + 1;
    } else if(action.type == 'DECREMENT') {
        return state - 1;
    } else {
        return state;
    }
}
Run Code Online (Sandbox Code Playgroud)

...我不知道这是一个传递给它的函数reduce.如何将数据减少到单个值?如果这是一个你传递给的函数reduce那么state将是回调并且action将是初始值.

谢谢你有任何明确的解释.这很难概念化.

javascript functional-programming reactjs redux

40
推荐指数
5
解决办法
5103
查看次数

Cheerio Map奇怪的行为

我正在使用mapCheerio结果列表来返回属性值.我想要的是一个包含属性值列表的变量(在本例中为ID),但我得到的是ID和额外的数据.

以下代码打印ID列表:

let ids = $('[data-profileid]').map(function() {
    console.log($(this).attr('data-profileid'))
})
Run Code Online (Sandbox Code Playgroud)

结果:

1012938412
493240324
123948532
423948234
...
Run Code Online (Sandbox Code Playgroud)

但是,以下代码返回ID,但格式不同:

let ids = $('[data-profileid]').map(function() {
    return $(this).attr('data-profileid')
})

console.log(ids)
Run Code Online (Sandbox Code Playgroud)

结果:

...
'69': '234234234,
'70': '9328402397432',
'71': '1324235234',
  options:
   { withDomLvl1: true,
     normalizeWhitespace: false,
     xmlMode: false,
     decodeEntities: true },
  _root:
   { '0':
      { type: 'root',
        name: 'root',
        attribs: {},
...
Run Code Online (Sandbox Code Playgroud)

什么是这些额外的数据?当然不是必需的.我宁愿只有一个普通的数组.

node.js cheerio

10
推荐指数
2
解决办法
3258
查看次数

合并来自Promise.all的许多数组

Promise.all完成其返回包含数据数组的数组.在我的例子中,数组只是数字:

[
    [ 1, 4, 9, 9 ],
    [ 4, 4, 9, 1 ],
    [ 6, 6, 9, 1 ]
]
Run Code Online (Sandbox Code Playgroud)

阵列可以是任何大小.

目前我这样做:

let nums = []
data.map(function(_nums) {
    _nums.map(function(num) {
        nums.push(num)
    })
})
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以做到这一点?是否lodash有一个能够做到这一点的任何功能?

javascript arrays

8
推荐指数
4
解决办法
4468
查看次数

通过Dependancy Injection传递静态类

如何通过依赖注入将静态类传递给对象?

例如,Carbon使用静态方法:

$tomorrow = Carbon::now()->addDay();
Run Code Online (Sandbox Code Playgroud)

我有依赖Carbon的服务,目前我在依赖中使用库而不注入它们.但是,这增加了耦合,我想通过DI传递它.

我有以下控制器:

$container['App\Controllers\GroupController'] = function($ci) {
    return new App\Controllers\GroupController(
        $ci->Logger,
        $ci->GroupService,
        $ci->JWT
    );
};
Run Code Online (Sandbox Code Playgroud)

我如何将碳传递给它?

php dependency-injection slim pimple

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

如何对 HTTP 请求进行单元测试?

正如标题所问我如何使用 Mocha 和 Chai 测试 HTTP 请求?

我最近开始学习单元测试,但我仍然对测试的某些方面感到困惑。我可以通过返回值的精细测试方法获得,但我对如何测试发出 HTTP/IO 请求的方法感到困惑。

例如,我有以下代码:

module.exports = someRequest => new Promise((resolve, reject) => 
    http.get('http://google.com', resp => {
        if(resp.headers['content-type'] !== 200) {
            reject(new Error('Failed to connect to Google'));
        }
        resolve('Connected to Google');
    })
);
Run Code Online (Sandbox Code Playgroud)

我想测试两种情况:

  1. 向 Google 的请求成功
  2. 对 Google 的请求失败

我是否必须模拟这些请求,如果是这样,模拟旨在发出 HTTP 请求的方法的目的是什么?

unit-testing mocha.js node.js chai

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

如何在Babel 7中启用带有插件提案对象剩余散布的散布运算符?

我正在尝试使用Babel在我的项目中启用传播运算符,但是由于Babel已删除了舞台预设,所以我没有运气让传播运算符与以下人员一起工作:https : //www.npmjs.com/package/@babel/插件建议对象剩余传播

我已经安装plugin-proposal-object-rest-spread并将其添加到我的.babelrc

{
  "presets": [
    "@babel/preset-env",
    "@babel/preset-react"
  ],
  "plugins": [
    "@babel/plugin-proposal-object-rest-spread"
  ]
}
Run Code Online (Sandbox Code Playgroud)

但是我仍然收到以下错误:

Support for the experimental syntax 'objectRestSpread' isn't currently enabled 
 (28:3):

  26 |   onClick,
  27 |   text,
> 28 |   ...allProps
     |   ^
  29 | }) => {
  30 |   let Element = isStatic ? 'span' : renderAs;
  31 |   const props = modifiers.clean(allProps);

Add @babel/plugin-proposal-object-rest-spread (https://git.io/vb4Ss) to the 'plugins' section of your Babel config to enable transformation.
Run Code Online (Sandbox Code Playgroud)

建议我补充@babel/plugin-proposal-object-rest-spread …

babeljs

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

是否可以将自定义数据传递到条纹签出?

我正在关注带有服务器集成的Stripe Checkout的文档:https : //stripe.com/docs/payments/checkout/server

示例中的代码工作正常,但是购买完成后,我遇到的问题是无法跟踪用户或其订单。

我有一个webhook设置,可以在付款完成后自动条带ping。但是,Stripe的响应会话除了名称,描述和图像外,不包含有关所订购产品的信息。我可以使用产品名称来查询数据库,但是我宁愿使用一个ID或一个标签。

$app->post("/stripe-pingback", function(Request $request, Response $response, array $args) {
    \Stripe\Stripe::setApiKey("xxxxx");

    // You can find your endpoint's secret in your webhook settings
    $endpoint_secret = 'xxxxx';

    $payload = $request->getBody();
    $sig_header = isset($_SERVER['HTTP_STRIPE_SIGNATURE']) ? $_SERVER['HTTP_STRIPE_SIGNATURE'] : null;
    $event = null;

    try {
        $event = \Stripe\Webhook::constructEvent($payload, $sig_header, $endpoint_secret);
    } catch(\UnexpectedValueException $e) {
        // Invalid payload
        http_response_code(400); // PHP 5.4 or greater
        exit();
    } catch(\Stripe\Error\SignatureVerification $e) {
        // Invalid signature
        http_response_code(400); // PHP 5.4 or greater
        exit();
    }

    // …
Run Code Online (Sandbox Code Playgroud)

php stripe-payments

8
推荐指数
3
解决办法
2238
查看次数

MongoDB 指南针 - 如何插入日期类型?

使用 MongoDB Compass 将文档插入 MongoDB 数据库时,如何插入当前日期?

我试过这样:

在此处输入图片说明

但是正如你所看到的,有一个错误。

如何使用 MongoDB Compass 插入当前日期?

mongodb mongodb-compass

7
推荐指数
2
解决办法
9085
查看次数

Go - 我是否为所有项目都有一个工作区,或者每个项目有一个工作区?

何时使用Go项目如何组织?我对工作区部分感到有点困惑.我已经阅读了以下内容:https://golang.org/doc/code.html#Workspaces ...这部分让我失望了:

典型的工作空间包含许多包含许多包和命令的源存储库.大多数Go程序员将他们所有的Go源代码和依赖项保存在一个工作区中.

这是否意味着我创建的每个项目都是一个单独的工作区?例如,如果两个项目使用相同的包,我将在我的计算机上有两个该包的副本.

或者,这是否意味着您有一个主工作区,您的项目共享这些包?

有点困惑.

go

6
推荐指数
2
解决办法
1889
查看次数