小编chm*_*nie的帖子

可靠地确定angular-ui模态是打开还是关闭(显示或隐藏)

我正在寻找一种方法来可靠地确定角度ui模态窗口当前是打开还是关闭.

标准的Bootstrap JS为此提供了"显示"/"隐藏"事件.

现在我只能包装modal.close()函数并将变量设置为'closed'.此外,我删除模态对象,再次打开时重新实例化它.但这并不包括用户点击背景或按ESC键关闭模式的情况.

是否有一种干净的方式来涵盖这些案件?

modal-dialog angularjs angular-ui

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

npm挂在postinstall/unlock上

我有一台Linux服务器使用KVM运行一些虚拟机.主机是内核2.6.32-32(-pve)的Debian派生.

在我运行的大约75%的时间里npm install,它在安装模块时会挂起.我在愚蠢的调试级别运行它,它总是挂在线上

npm info postinstall [module name] (较旧的npm版本)

要么

npm verb unlock done using [...] (较新的npm版本)

永远.

它发生在主机上的每个项目和虚拟化系统上的每个节点以及我测试的每个npm版本(很多,包括最新版本(2.7.x atm)).

它也不是确定性的.有时它可以工作,有时不工作,而且大部分时间它都挂在不同的模块上.

在我的开发机器上(运行OS X 10.10的同一网络),它工作正常.

我并不支持任何代理.

这可能有什么问题?

编辑:暂时我通过使用https://github.com/JamieMason/shrinkpack将所有依赖项作为gzip压缩文件检入来解决此问题

linux virtualization node.js npm

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

如何手动取消服务器上的 XMLHttpRequest 文件上传(流)

我正在使用 XMLHttpRequest(级别 2)将文件上传到 node.js 服务器。我正在检查文件流中服务器端的有效标头。现在,如果流式传输时出现任何错误,我想触发取消上传。我的 XMLHttpRequest 代码非常简单:

var xhr = new XMLHttpRequest();
var file;
$('#file').on('change', function(e) {
  file = this.files[0];
  file.filename = this.files[0].name;
});
$('#submit').on('click', function(e) {
  e.preventDefault();
  xhr.open('POST', '/upload', true);
  xhr.send(file);
});
Run Code Online (Sandbox Code Playgroud)

在服务器端,我将 req 流通过验证器传输到文件流中。如果验证时发生任何错误,我希望 XMLHttpRequest 中止上传。但是仅仅发送 400 作为对请求的响应根本不起作用。我向 xhr 注册了各种监听器,但没有一个触发。它似乎根本不关心 400,仍然尝试上传文件。通常我预计 onreadystatechange 事件会在这种情况下触发。

我尝试通过发出 req.end() 来关闭 req,但这似乎有点苛刻并揭示了另一种好奇心。如果我这样做,XMLHttpRequest 会重试发送 POST 请求 7 次(在 Chrome 中;在 Firefox 中重试 5 次;这在任何地方都有记录吗?)。

编辑:正如保罗建议的那样:

...连接在从服务器接收任何状态之前关闭...

在服务器端,我尝试监听响应的完成事件。

  checkedFile.on('error', function (err) {
    res.status(400);
    res.end();
  });

  res.on('finish', function () {
    req.destroy();
  });
Run Code Online (Sandbox Code Playgroud)

但无论如何它都会重试。我只是不在乎400。

也许还有另一种取消而不破坏请求流的方法?

第二次编辑:可以在不破坏请求流的情况下结束请求:

checkedFile.on('wrong', …
Run Code Online (Sandbox Code Playgroud)

javascript xmlhttprequest stream node.js express

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

验证node.js中上传文件的mime类型

我正在使用node和express来处理文件上传,我正在使用multiparty/busboy和request将它们直接传输到转换服务.

有没有办法在将流发送到相应的提供程序之前验证流是否具有某些特定的文件类型?我尝试了https://github.com/mscdex/mmmagic从第一个块中获取MIME类型,并且它工作得很好.我想知道以下工作流程是否可能以某种方式工作:

  • 缓冲文件上载流并检查Mime类型的传入数据.
  • 检查前几个块并且mime类型正确时,将缓冲区清空到请求流中.
  • 当mime类型结果不正确时,发送错误消息并返回.

我试图让这个工作,但我似乎有一些流兼容性问题(节点0.8.x与节点0.10.x流,请求库不支持).

有没有最佳实践来解决这个问题?我看错了吗?

编辑:感谢Paul,我想出了这段代码:

https://gist.github.com/chmanie/8520572

multipartform-data stream node.js mime-types express

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