小编Cla*_*dio的帖子

如何在Node中的http.request()上设置超时?

我正在尝试在没有运气的情况下使用http.request的HTTP客户端设置超时.到目前为止我所做的是这样的:

var options = { ... }
var req = http.request(options, function(res) {
  // Usual stuff: on(data), on(end), chunks, etc...
}

/* This does not work TOO MUCH... sometimes the socket is not ready (undefined) expecially on rapid sequences of requests */
req.socket.setTimeout(myTimeout);  
req.socket.on('timeout', function() {
  req.abort();
});

req.write('something');
req.end();
Run Code Online (Sandbox Code Playgroud)

任何提示?

timeout http node.js

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

在bash别名中Git自动完成?

我使用的go是一个简单的bash别名git checkout branchname.我想念的是自动完成功能,它与完整git checkout branchna...命令一起使用,但不在别名中.

有没有办法指示Bash"继承"另一个命令的自动完成"驱动程序"?

git bash

60
推荐指数
5
解决办法
9955
查看次数

Socket.io:如何处理关闭连接?

我试图了解哪些是我的应用程序的"物理"限制.

在客户端:

var socket = io.connect("http://127.0.0.1:6701");
socket.on('connect', function() {
  socket.disconnect();
});
socket.on('disconnect', function() {
  socket.socket.reconnect();
});
Run Code Online (Sandbox Code Playgroud)

在服务器端:

var io = require('socket.io').listen(6701);

io.sockets.on('connection', function(socket) {

  socket.on('disconnect', function(reason) {
    var o = Object.keys(socket.manager.open).length
      , c = Object.keys(socket.manager.closed).length
      , cA = Object.keys(socket.manager.closedA).length
      , h = Object.keys(socket.manager.handshaken).length

      console.log("open: " + o)
      console.log("closed: " + c)
      console.log("handshaken: " + h)
      console.log("closedA: " + cA)
      console.log("---");
   });
});
Run Code Online (Sandbox Code Playgroud)

在OSX中我达到文件限制(256)时,统计数据如下

open: 471
closed: 235
handshaken: 471
closedA: 235
Run Code Online (Sandbox Code Playgroud)

令我困惑的是:

  • 如果我强行关闭连接(这是我想对客户端做的disconnect(),为什么我仍然使用文件句柄(所以我达到文件限制)编辑:添加延迟似乎服务器可以保持呼吸,从不达到文件限制)?
  • 有没有办法完全关闭套接字,所以我可以非常肯定很少达到文件限制(我知道我可以把它推到65K)?
  • 有没有办法知道我达到了文件限制,以便我可以停止接受连接?

谢谢

macos node.js socket.io

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

如何使用addEventListener在Firefox中获取错误事件详细信息?

我试图理解为什么Firefox(我使用15但在夜间也是一样的)在尝试访问错误事件信息时表现不像WebKit.

这个适用于所有地方:

window.onerror = function(message, lineno, filename) { }
Run Code Online (Sandbox Code Playgroud)

但我当然不想用这个.

正确的做法是:

window.addEventListener('error', function(e) { 
  console.log(e.message);
}, false);
Run Code Online (Sandbox Code Playgroud)

不幸的是,这只适用于WebKit.在Firefox中调用处理程序,但e事件几乎为空:没有消息,没有行号,没有文件名属性.

最小的测试在这里:http://jsbin.com/efexiw/1/edit

我不认为这是一个错误,但是...所以问题是:如何在最近的Firefox中获取错误详细信息?

javascript firefox

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

使用 CDK 定义具有服务发现功能的 ECS Fargate 集群,无需负载均衡器

我们使用CDK,并且开始在 ECS 服务中使用服务发现(因此,服务器到服务器而不是客户端到服务器)。这意味着我们不需要 ALB(至少目前,也许我们可以稍后重新考虑这个选择)。

\n

不幸的是,用于构建 ECS 服务 ( ecs_patterns.ApplicationLoadBalancedFargateService) 的 CDK 模式也会创建 ALB,因此我们不能按原样使用它,我们需要自己创建这些 CDK 步骤。

\n

这个想法基本上是从 AWS 将本教程从使用 AWS CLI移植到使用 CDK。

\n

问题是:是否有人已经这样做并想要分享它或者知道 CDK Patterns 没有该选项的原因?

\n

(如果没有人打算共享它,我们会这样做,然后当然会共享它;我认为这个选项应该立即出现在 CDK 中,这只是不浪费时间“只是”配置问题的问题\xe2\x80\x93\xc2\xa0除非有一些我们在这里看不到的东西...)。

\n

amazon-web-services amazon-ecs aws-cdk

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

按时间顺序列出的分支?

有没有办法让你的(本地)分支列表按最后一次提交的日期排序(可能还有提交的id)?当你拥有大量的分支机构时,就像我一样,仅仅查看分支列表(不检查日志)就可以查看最近的工作.

git

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

Express:是否可以绕过静态文件的会话?

我正在使用Express + Mongoose + Passport + Connect-mongo的简单设置,一切正常.唯一让我感到困惑的是,我passport.unserializeUser甚至可以看到静态文件的调用,从我的应用程序的角度来看 - 这绝对没有意义.

我可以理解,在某些情况下,您希望在某种授权下提供静态文件,但我想知道如果我正在提供静态文件,我可以"跳过"整个会话中间件.

(在生产环境中,我无法使用cookie作为资产)

javascript node.js express passport.js

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

从命令行伪造socket.io连接

一旦你有一个失败的复杂socket.io + node.js设置,如何在不使用浏览器的情况下进行一些测试?你知道是否可以创建使用socket.io与"master"node.js服务器通信的node.js客户端?(与浏览器交谈的那个).当然,浏览器中的逻辑将被复​​制到那些客户端中,但仍然......

javascript testing node.js socket.io

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

你见过这种奇怪的IE JavaScript行为/ bug吗?

好吧,这让我抓狂:

第一个例子,没问题:

<script>

window.myvar = 150;

if (false) {
  var myvar = 3;
}

// This will popup "150"
alert(myvar)

</script>
Run Code Online (Sandbox Code Playgroud)

现在,使用两个脚本元素:

<script>

window.myvar = 150;

</script>

<script>

if (false) {
  var myvar = 3;
}

// This will popup "undefined"
alert(myvar)

</script>
Run Code Online (Sandbox Code Playgroud)

用IE8测试.

你知道为什么吗?

javascript internet-explorer

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

NodeJS:这个代码是否会运行多核?

我正在使用此节点脚本作为我的项目的"跑步者"(需要同时启动/停止三个脚本).现在我想知道从节点进程内部生成的child_process是否将使用我的服务器所拥有的多核(我对90%有信心,但是比安慰更安全).


    var CP = require("child_process")
      , children = [ 'server1', 'server2', 'server3' ]
      , child

    children.forEach(function(name) {

      child = CP.spawn("node", [name] )

      child.stdout.on('data', function (data) {
        process.stdout.write(data.toString());
      })

      child.stderr.on('data', function (data) {
        process.stdout.write(data.toString());
      })
    }
  });
Run Code Online (Sandbox Code Playgroud)

操作系统是Ubuntu Linux.

node.js

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