我意识到我能做到:
arr = arr.filter(function(n){ return !filterFunc(n); });
Run Code Online (Sandbox Code Playgroud)
但有没有办法只是反转一个过滤器而不将过滤器包装在一个匿名函数中?
这看起来很麻烦.
这就是我所拥有的,并且我不断收到错误,因为当我按顺序执行时文件还不存在.
如何在writeStream关闭时触发操作?
var fs = require('fs'), http = require('http');
http.createServer(function(req){
req.pipe(fs.createWriteStream('file'));
/* i need to read the file back, like this or something:
var fcontents = fs.readFileSync(file);
doSomethinWith(fcontents);
... the problem is that the file hasn't been created yet.
*/
}).listen(1337, '127.0.0.1');
Run Code Online (Sandbox Code Playgroud) 我跑了:
node debug f.js
Run Code Online (Sandbox Code Playgroud)
现在我有一个:
debug>
Run Code Online (Sandbox Code Playgroud)
提示.如何在我键入的终端之间切换被解释为调试命令并将其输入到脚本的stdin中?
假设我做了3个更改,C1,C2和C3.
然后我撤消X3.然后我重做X3.我回到了我开始的地方.
然后我再次撤消X3,但后来我不小心打字了ifoo<Esc>.我现在可以做些什么来恢复变化#3?
可能吗?它似乎不适用于我的REPL,无论是否有--harmony.
我真正想做的是使用for..of循环,但是让问题解决似乎更简单,可能是同样的原因.
有谁知道这些的状态?
例如,当最初输入数据时,如果它与我的验证正则表达式不匹配,我可能会将其吐出。然后当我需要使用它的时候,我常常会产生这样的冲动:
function useData(data) {
if(data.match(/some invalidating substring/) throw Error('Shouldn\'t have ever gotten past the orig. regex, but somehow it did, so its good that this extra layer of debugging info was integrated.');
// actually use the data.
}
Run Code Online (Sandbox Code Playgroud)
我并不是真的在谈论安全性,因为那样你就需要深度防御。我所指的代码类型通常对安全性不敏感,我只是想编写设计良好的代码,很有可能发现错误。从某种意义上说,深度防御也需要防止故障,而且不仅仅是漏洞,我想,但与此同时,Unix 哲学要求代码只做一件事,而且只是做那件事,但要做得好。考虑到这一点,不“信任”您的验证代码来完成其工作,然后在另一个函数中的某个地方制作另一段验证代码,“以防万一”,这似乎是不好的做法。用两段代码做一件事也不是好事。另一个缺点是,如果您更改验证模式,那么您可能会忘记在两个地方都这样做。
反馈?