原创 use generator and co in mocha

主要的點在於當 it() 函數的回調函數帶有done參數,mocha會等到回調函數裏面出 done 或者或者超時才完成一條測試。同時因爲每個測試用例最多執行2000毫秒,所以要面對需要很長時間的測試,需要通過設置 -t 來修改最長

原创 Node中require()的原理

module = new Module() //module 爲 Module類的實例 var Module = function(id, parent) { this.id = id; this.exports =

原创 10 個技巧,讓你在2017 年成爲更好的 Node 開發者

本文是由我們的客座作者Azat Mardan寫的。SitePoint引入客座帖子的目的是希望能給你帶來web社區裏著名作者和演講者的有趣內容。 在2012年,我加入了Storify並開始使用Node作爲我的主要語言。從那以後,我從未回首

原创 學習JavaScript中的異步Generator

原文:https://www.bignerdranch.com/blog/asyncing-feeling-about-javascript-generators/ 你想看精簡版本麼 這裏是所有三個例子的要點 異步的generator

原创 Apache Proxy和Redirect(Proxy與Redirect衝突問題)

最近在國外的一臺機器上部署了公司的代碼,但是因爲有很多的圖片資源,所以國內訪問很慢,而客戶這段時間剛好在國內,所以想要把所有的圖片資源的鏈接重定向到國內的一臺機器上。 本以爲加上一段Redirect或者RedirectMatch什麼的就可

原创 Cluster

當我們去了解Cluster的時候,我們會在node的官方文檔的一開始就會看到一個簡單的例子 // 這個例子是根據cpu的核數來生成對應的子進程數量, // 然後每個子進程都運行一個綁定到8000端口的http server const c

原创 Koa中間件(middleware)實現探索

說起Node,最常用的估計就是express和koa,兩者都用到了中間件(middleware)這一概念,主要用於對請求的統一處理。 koa的請求處理是典型的洋蔥模型,下面是官方的配圖,而這一模型的組成部分就是middleware 接

原创 js浮點運算精度問題和IEEE754

原文鏈接 當我們使用一段時間的JS之後會遇到下面這個問題 0.1 + 0.2 === 0.3 // false 我們可以在控制檯裏面看到0.1+0.2輸出的並不是0.3而是0.30000000000000004。那麼爲什麼出現這樣的問

原创 ES6展開運算符(擴展運算符)的使用技巧

原文鏈接 在ES6中,我們有了一個新的運算符–展開運算符,它可以使我們的代碼的數量有一定的減少,有時候甚至有很有用的作用,我們來舉幾個常用的例子,同時通過例子來了解展開運算符的使用。 1.apply中的使用 當我們的函數有多個變量的

原创 js數組去重

原文鏈接 數組的去重在日常的開發中經常碰到的需求,雖然我們真實開發過程中會有lodash,Jquery等框架幫助我們。但是,很多時候我們也需要自己來實現這個簡單的功能 框架 var arr = [1, 2, 3, 4, 5, 5, 5,

原创 語義化版本

semver規則

原创 Javascript原型鏈

原型鏈的繼承就是將子類的prototype.__proto__鏈接到父類的prototype,藉此完成原型鏈 child.prototype.__proto__.= parent.prototype 實例化的對象沒有prototype,p

原创 Bootstrap盒模型

關於盒模型有兩種方案,可以通過box-sizing來控制,關於盒模型其實兩種方案都是表示有margin,border,’padding’,’conent’組成,唯一的區別在於一個Dom的width1到底是指那部分。 box-sizing:

原创 ES6中class的實現

在es6出來之後,我們看到js終於有class這個關鍵字,表示我們終於可以使用官方的類了。那麼es6的類和之前的我們使用原型鏈繼承實現的類有什麼聯繫麼。 答案是一模一樣 JavaScript classes introduced in

原创 反思JavaScript: 通過函數代替break

原文:https://hackernoon.com/rethinking-javascript-break-is-the-goto-of-loops-51b27b1c85f8#.k2oyppp5i 在我的上一篇文章 Death o