Node.js最佳实践exception处理

我刚刚在几天前开始尝试node.js。 我已经意识到,只要我的程序中有一个未处理的exception,Node就会被终止。 这与我已经暴露的正常的服务器容器不同,在那里只有Worker Thread在发生未处理的exception并且容器仍然能够接收请求时死亡。 这提出了几个问题: process.on('uncaughtException')是防范它的唯一有效方法吗? process.on('uncaughtException')会在执行asynchronous进程期间捕获未处理的exception呢? 是否有一个已经构build的模块(如发送电子邮件或写入文件),我可以利用未捕获的exception的情况下? 我将不胜感激任何指针/文章,会告诉我处理node.js中的未捕获exception的最佳实践

了解Rails真实性令牌

我遇到了一些关于Rails真品令牌的问题,就像我现在已经很多次了。 但我真的不想解决这个问题,继续下去。 我真的很想了解真实性标记。 那么,我的问题是,你有关于这个问题的一些完整的信息来源,或者你会花时间在这里详细解释?

如何获得$(this)select器的孩子?

我有一个类似于这样的布局: <div id="…"><img src="…"></div> 并希望使用jQueryselect器来selectdiv内的子img点击。 为了得到div ,我有这个select器: $(this) 我怎样才能让孩子使用select器img ?

何时在CSS中使用margin和padding

在编写CSS时,应该在决定何时使用margin以及何时使用padding时使用特定的规则或准则?

如何编码一个URL缩短?

我想创build一个URL shortener服务,您可以在input字段中写入一个长URL,该服务将URL缩短为“ http://www.example.org/abcdef ”。 编辑:由于对这个主题的持续兴趣,我已经发布了一个有效的解决scheme,GitHub的JavaScript , PHP , Python和Java的实现 。 如果你喜欢,请加上你的解 除了“ abcdef ”之外,还可以使用其他string,其中包含az, AZ and 0-9 6个字符。 这使得56-570亿可能的string。 我的方法是: 我有一个三列的数据库表: ID,整数,自动递增 长,string,用户input的长URL 短,string,缩短的url(或只是六个字符) 然后我会将长URL插入表中。 然后,我将select“ id ”的自动增量值并构build它的散列。 这个散列应该被插入为“ short ”。 但是我应该build立什么样的散列? 像MD5这样的散列algorithm会造成太长的string。 我想,我不使用这些algorithm。 自buildalgorithm也可以工作。 我的想法: 对于“ http://www.google.de/ ”,我得到自动增量编号239472 。 然后我执行以下步骤: short = ''; if divisible by 2, add "a"+the result to short if divisible […]

我如何debuggingNode.js应用程序?

如何debuggingNode.js服务器应用程序? 现在我主要使用打印语句来进行警报debugging ,如下所示: sys.puts(sys.inspect(someVariable)); 必须有更好的debugging方法。 我知道Google Chrome有一个命令行debugging器。 这个debugging器是否也可用于Node.js?

简单的面试问题变得更加困难:给定数字1..100,find缺less的数字(s)

我有一段很有意思的面试经历。 问题开始真的很简单: Q1 :我们有一个包含数字3 ,…, 100 。 每个号码只出现一次,所以有100个号码。 现在从包里随机抽出一个号码。 find缺less的号码。 当然,我之前听过这个面试问题,所以我很快就回答了: A1 :那么数字1 + 2 + 3 + … + N的总和就是(N+1)(N/2) (参见维基百科:算术系列之和 )。 对于N = 100 ,总和是5050 。 因此,如果包里有所有的数字,那么总和就是5050 。 由于缺less一个数字,所以总和将小于这个数字,不同之处在于这个数字。 所以我们可以在O(N)时间和O(1)空间find缺失的数字。 在这一点上,我认为我做得很好,但突然之间,这个问题出乎意料地转向: Q2 :这是正确的,但是现在如果两个数字不见了,你会怎么做呢? 我从来没有见过/听过/考虑过这种变化,所以我惊慌失措,无法回答这个问题。 面试官坚持了解我的思维过程,所以我提到也许我们可以通过与预期产品进行比较来获得更多的信息,或者在收集了第一遍等等的信息之后进行第二轮的处理,但是我真的只是在拍摄在黑暗中,而不是实际上有一个清晰的解决schemepath。 面试官试图鼓励我说,有第二个等式确实是解决问题的一种方法。 在这一点上,我有点不高兴(因为不知道答案),并询问这是一个普通的(阅读:“有用的”)编程技巧,或者它只是一个技巧/疑难答案。 面试官的回答让我感到吃惊:你可以推广这项技术,找出3个缺失的数字。 事实上,你可以概括它findk缺失的数字。 Qk :如果包里没有K个数字,你会如何有效地find它? 这是几个月前,我仍然不知道这个技术是什么。 显然有一个Ω(N)时间的下界,因为我们必须扫描所有的数字至less一次,但采访者坚持认为,求解技术的时间和空间复杂度(减去O(N)时间input扫描)定义为k不是N。 所以这里的问题很简单: 你将如何解决Q2 ? 你将如何解决Q3 ? 你将如何解决QK ? 澄清 通常从1 … […]

在Git存储库中查找和恢复已删除的文件

说我在Git仓库。 我删除一个文件并提交更改。 我继续工作,做更多的承诺。 然后,我发现我需要恢复该文件。 我知道我可以使用git checkout HEAD^ foo.bar来签出一个文件,但是我不知道该文件何时被删除。 find删除给定文件名的提交最快的方法是什么? 将该文件恢复到我的工作副本最简单的方法是什么? 我希望我不必手动浏览我的日志,签出一个给定的SHA整个项目,然后手动将该文件复制到我原来的项目结帐。

不可resize的窗口边框和位置

如果我创build不可resize的JFrames,并启用Windows Aero setLocation似乎不正确地考虑到窗口边框。 在下面的代码中,我期望第二帧被定位在第一帧的右侧,而不是边界重叠。 如果Aero被禁用,或者我删除了setResizable的调用,则按照预期完成。 import java.awt.Rectangle; import javax.swing.JFrame; public class FrameBorders { public static void main(String[] args) { JFrame frame1 = new JFrame("frame 1"); JFrame frame2 = new JFrame("frame 2"); frame1.setResizable(false); frame2.setResizable(false); frame1.setVisible(true); Rectangle bounds = frame1.getBounds(); frame2.setLocation(bounds.x+bounds.width, bounds.y); frame2.setVisible(true); } } 我做错了什么或者这是一个错误? 我怎样才能显示2个不可重复的对话框,并没有重叠的边界? 编辑:添加屏幕截图(也将frame2更改为一个JDialog而不是一个JFrame) Aero On: Aeroclosures: 航空虽然可resize:

在PHP中转义引号

我得到parsing错误,我认为这是因为"time"的引号。 我怎样才能把它作为一个整体的string呢? <?php $text1= 'From time to "time" this submerged or latent theater in 'Hamlet' becomes almost overt. It is close to the surface in Hamlet's pretense of madness, the "antic disposition" he puts on to protect himself and prevent his antagonists from plucking out the heart of his mystery. It is even closer to […]