小编Ale*_*lex的帖子

Puppeteer错误:协议错误(Page.captureScreenshot):目标已关闭

我在节点上运行puppeteer@1.12.2时遇到此错误:8-slim容器.

完整的错误:

Error: Protocol error (Page.captureScreenshot): Target closed.
    at Promise (/app/node_modules/puppeteer/lib/Connection.js:183:56)
    at new Promise (<anonymous>)
    at CDPSession.send (/app/node_modules/puppeteer/lib/Connection.js:182:12)
    at Page._screenshotTask (/app/node_modules/puppeteer/lib/Page.js:903:39)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:189:7)
  -- ASYNC --
    at Page.<anonymous> (/app/node_modules/puppeteer/lib/helper.js:108:27)
    at /app/test.js:9:15
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:189:7)
Run Code Online (Sandbox Code Playgroud)

js文件(受GoogleChrome/puppeteer/examples/screenshot.js启发):

const puppeteer = require('puppeteer');
(async() => {
         const browser = await puppeteer.launch({
                headless: true,
                args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-gpu', '--disable-dev-shm-usage']
         });
          const page = await browser.newPage();
          await page.goto('http://google.com');
          await page.screenshot({path: 'example.png'});
          await browser.close();
})();
Run Code Online (Sandbox Code Playgroud)

Dockerfile(受Troubleshooting.md #running- puppeteer -in- docker的启发): …

node.js docker puppeteer

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

Mysql的Vagrant端口转发

我试图在Vagrantfile中设置端口转发以从主机系统连接到guest mysqld,但是得到reading initial communication packet错误.主持人:Yosemite,嘉宾:Trusty,vagrant 1.7.4

Vagrantfile(主持人):

config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "forwarded_port", guest: 3306, host: 3309
Run Code Online (Sandbox Code Playgroud)

my.ini文件(游客):

bind-address            = 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

8080转发就像一个魅力.

mysql -h127.0.0.1 -uroot -p 来自客人也工作.

mysql -h127.0.0.1 -P 3309 -uroot -p来自主机结果有reading initial communication packet错误.

当我从主机telnet时,连接立即关闭:

$ telnet localhost 3309
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
Run Code Online (Sandbox Code Playgroud)

当我从主机ssh到vagrant box时,端口转发工作:

$ssh vagrant@127.0.0.1 -p 2222 -L3308:localhost:3306 
Run Code Online (Sandbox Code Playgroud)

然后我可以mysql -h127.0.0.1 -P3308 -uroot -p毫无问题地从主机连接,我将其用作临时解决方法.

mysql portforwarding vagrant vagrantfile

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

Phake框架:如何在captureAll上克隆对象?

\ Phake :: captureAll返回连续调用中使用的参数数组.它可以与标量一起使用,或者在传递不同的对象时使用,但在使用相同的对象时不是很有用.对于数据映射器模拟,当CUT多次修改并持久化对象时,它经常发生.

在下面的例子中,我试图断言第一个$mock->fooWithArgument是用预期的参数调用的,但是找不到这样做的方法:

public function testArgumentCapturingAllValls()
{
    $mock = \Phake::mock('PhakeTest_MockedClass');
    $obj1 = new \stdClass;
    $obj1->bar = 1;
    $mock->fooWithArgument($obj1);
    $obj1->bar = 2;
    $mock->fooWithArgument($obj1);
    \Phake::verify($mock, \Phake::atLeast(1))->fooWithArgument(\Phake::captureAll($toArgument));

    $this->assertEquals(1, $toArgument[0]->bar);  //fails, as both elements point to the same instance
}
Run Code Online (Sandbox Code Playgroud)

php unit-testing phake

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

具有条件的Mongodb聚合查找

我有一个集合,称为article_category哪个商店都article_id属于category_id具有数据格式的类别.

集合1:article_category

{
  "article_id": 2015110920343902,
  "all_category_id": [5,8,10]
}
Run Code Online (Sandbox Code Playgroud)

然后我有其他收集称为article哪个存储我的所有帖子

收集2:文章

{
  "title": "This is example rows in article collection"
  "article_id": 2015110920343902,
},
{
  "title": "Something change"
  "article_id": 2015110920343903,
},
{
  "title": "This is another rows",
  "article_id": 2015110920343904,
}
Run Code Online (Sandbox Code Playgroud)

现在,我想执行的MongoDB查询发现titleregex同时category_id必须等于8.这是我的查询,但不起作用.

db.article.aggregate(
{
  $match: 
  {
    title: 
    {
       $regex: /example/
    }
  }
},
{
    $lookup:
       {
         from: "article_category",
         pipeline: [
            { $match: { category_id: 8 } } …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

11
推荐指数
2
解决办法
2万
查看次数

如何在PHP中进行DST切换之前的最后一小时内从DateTime对象中检索unix时间戳?

有一个示例代码

<?php
$dt = new \DateTime();
$dt->setTimezone(new \DateTimeZone('Europe/London'));

$timestamp = 1351383400;    
echo "$timestamp \n";

$dt->setTimestamp($timestamp);
echo $dt->getTimestamp();
Run Code Online (Sandbox Code Playgroud)

输出2个不同的时间戳1351383400(太阳,2012年10月28日01:16:40 + 0100,DST开关前)和1351387000(太阳,2012年10月28日01:16:40 +0000,1小时后,DST开关后)

问题是如何让Timestamp getter返回我之前传递给Timestamp setter 1行的完全相同的整数?

PHP 5.3.6

php datetime unix-timestamp dst

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

是否可以使用--process-isolation选项调试PhpUnit测试?

对于unittest

class SampleTest extends PHPUnit_Framework_TestCase
{
    public function testBreakpoint()
    {
        $a = 18;
    }
}
Run Code Online (Sandbox Code Playgroud)

断点5号线"$ a = 18;",

  • Xdebug v2.1.0,
  • PHPUnit 3.6.10,
  • PHP 5.3.6,
  • ubuntu 10.11

使用NO --process-isolation选项运行unittest可以按预期停止第5行的脚本执行.运行相同的配置WITH --process-isolation选项不会在第5行停止执行.

选项--process-isolation在https://github.com/sebastianbergmann/phpunit/blob/3.6/PHPUnit/Util/PHP.php中的runJob函数中使用'proc_open'运行新进程中的每个测试

使用调试器插件测试PhpStorm 3和vim 7.它允许调试PHPUnit本身,但不允许调试测试用例.

有没有办法使用Xdebug调试由PhpUnit创建的子进程?可能是Zend Debugger?

php phpunit xdebug phpstorm

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

优雅地关闭ReactPhp应用程序

问题与仅使用react\stomp从RabbitMQ消耗N个消息非常相关,单独确认它们然后退出,但更一般.

例如,我的I/O操作很慢:

$port = 4000;

$loop = React\EventLoop\Factory::create();
$socket = new React\Socket\Server($loop);
$socket->on('connection', function ($conn) use ($loop){

    $conn->on('data', function ($data) use ($conn, $loop) {

        if ($data == 42) {
            // this instantly stop the loop
            $loop->stop();
        }

        $process = new React\ChildProcess\Process('sleep 5; echo ' . $data);

        $loop->addTimer(0.001, function($timer) use ($process, $conn) {
            $process->start($timer->getLoop());

            $process->stdout->on('data', function($output) use ($conn) {
                if ($output) {
                    $conn->write("> $output");
                }
            });
        });
    });
});
echo "Socket server listening on port $port.\n";
echo …
Run Code Online (Sandbox Code Playgroud)

php reactphp

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

JMS序列化器XmlList批注

如何为@XmlList元素定义cdata和名称空间?

例如,如果我需要修改示例http://jmsyst.com/libs/serializer/master/reference/annotations#xmlnamespace中的 BlogPost 以具有多个作者:

use JMS\Serializer\Annotation as JMS;

/**
 * @JMS\XmlNamespace(uri="http://example.com/namespace")
 * @JMS\XmlNamespace(uri="http://www.w3.org/2005/Atom", prefix="atom")
 * @JMS\XmlRoot("blog-post")
 */
class BlogPost
{
    /**
     * @JMS\Type("ArrayCollection<JMS\Serializer\Tests\Fixtures\Author>")
     * @JMS\XmlList(inline = true, entry="author")
     *
     * replaced XmlElement(namespace="http://www.w3.org/2005/Atom") with XmlList
     */
    private $author;
}
Run Code Online (Sandbox Code Playgroud)

具有类似以下内容的序列化xml:

<?xml version="1.0" encoding="UTF-8"?>
<blog-post xmlns="http://example.com/namespace" xmlns:atom="http://www.w3.org/2005/Atom">
    <atom:author>
        <full_name>Foo Bar></full_name>
    </atom:author>
    <atom:author>
        <full_name>Baz Qux></full_name>
    </atom:author>
</blog>
Run Code Online (Sandbox Code Playgroud)

对于单个@ XmlElement,cdata和名称空间都可以正常工作,但是@XmlList@XmlCollection没有这样的功能。

有什么线索我应该在列表中的元素的注释处放置什么?

php xml annotations jms-serializer

5
推荐指数
0
解决办法
1020
查看次数

将数组字段组合成单个数组字段 mongo

我正在使用 mongo 版本 3.4.3,我的文档存储在 mongo 中,如下所示 -

{
    "_id" : ObjectId("5ad5ab8aaf2808b739ba6ab2"),
    "ResumeId" : "105839064",
    "ResumeDetails" : {

            "WorkProfile" : [
                    {
                            "Company" : "XXXXXXXXX",
                            "JobTitle" : "YYYYY",
                            "JobSkills" : {
                                "CommonSkills": [],
                                "OtherSkills": []
                            }
                    },
                    {
                            "Company" : "XXXXXXXX",
                            "JobTitle" : "YYYYYY",
                            "JobSkills" : {
                                    "CommonSkills" : [
                                            ObjectId("5ad5ab860b94c96c738e914a")
                                    ],
                                    "OtherSkills" : [
                                            ObjectId("5ad5ab860b94c96c738e9146")
                                    ]
                            }
                    },
                    {
                            "Company" : "XXXXXXX",
                            "JobTitle" : "YYYY"
                    }
            ],
            "AdditionalSkills" : {
                    "CommonSkills" : [
                            ObjectId("5ad5ab860b94c96c738e9175"),
                            ObjectId("5ad5ab860b94c96c738e91f0"),
                            ObjectId("5ad5ab860b94c96c738e9241"),
                            ObjectId("5ad5ab860b94c96c738e919b")
                    ],
                    "OtherSkills" : …
Run Code Online (Sandbox Code Playgroud)

arrays mongodb mongodb-query aggregation-framework

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

写作时Mongodump

mongodump针对每秒写入多次的正在运行的服务器运行是否安全?是否有可能以这种方式损坏转储?

这里

用于--oplog在 mongodump 操作期间捕获传入的写入操作,以确保备份反映一致的数据状态。

这是否意味着无论数据库转储中有多少写入都会保持一致?

如果我mongodump --oplog在凌晨1 点运行并在凌晨 2 点完成,那么我运行mongorestore --oplogReplay会得到什么状态?

这里

但是,对于分片集群和副本集,使用mongodumpmongorestore作为备份策略可能会出现问题。

但为什么?我有 1 个主要和 2 个次要的副本集。运行mongodump中的次要问题是什么?它应该与主相同(复制滞后差异除外)。

mongodb mongodump

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

MongoDB聚合,如何在组管道中添加数据的每个元素

我有包含标签字段的文档.它是一个简单的数组,里面有标记名,里面没有对象也没有_id.只是像这样的普通标签["Protocol", "Access", "Leverage", "Capability"].

在我的组管道中,我尝试了类似的东西'selectedTags': { $addToSet: '$tags' }但最后我得到了一个包含标签数组的数组.我也是这样的$push.

我尝试使用$each$pushAll但不支持它们作为分组操作符,因为我的shell告诉我.

有人可以帮我这个吗?

谢谢

编辑:

示例文档:

{
    "_id" : "HWEdDGsq86x4ikDSQ",
    "teamId" : "AdLizGnPuqbWNsFHe",
    "ownerId" : "Qb5EigWjqn2t3bfxD",
    "type" : "meeting",
    "topic" : "Grass-roots hybrid knowledge user",
    "fullname" : "Guidouil",
    "startDate" : ISODate("2017-07-30T09:00:05.513Z"),
    "shareResults" : true,
    "open" : true,
    "language" : "fr",
    "tags" : [
        "Protocol",
        "Challenge",
        "Artificial Intelligence",
        "Capability"
    ],
    "isDemo" : true,
    "createdAt" : ISODate("2017-11-15T19:24:05.513Z"),
    "participantsCount" : 10,
    "ratersCount" : 10,
    "averageRating" …
Run Code Online (Sandbox Code Playgroud)

arrays each aggregate mongodb aggregation-framework

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

mongoDB 中上限集合的索引

我想知道上限集合是否保留过期文档的索引?

从正常集合中删除文档会保留索引

上限集合通过计时器删除文档,并且 根本不允许 db.collection.remove() 。

我在文档中找不到任何关于上限集合的索引会发生什么的文字,并且希望得到知道的人的帮助。

mongodb

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