W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
很多時(shí)候是在 Windows
或者 Mac OSX
系統(tǒng)下開(kāi)發(fā)項(xiàng)目,但一般都部署 Linux
系統(tǒng)下。
在 Windows
和 Mac
系統(tǒng)下,文件路徑是不區(qū)分大小寫(xiě)的,而 Linux
下是區(qū)分大小寫(xiě)的。這樣很容易出現(xiàn)文件大小寫(xiě)的問(wèn)題導(dǎo)致開(kāi)發(fā)環(huán)境下是好的,但上線后卻報(bào)錯(cuò)了。
為了避免這種情況的發(fā)生,文件路徑盡量都使用小寫(xiě)字符。并且在服務(wù)啟動(dòng)時(shí),ThinkJS 會(huì)檢測(cè)項(xiàng)目下文件路徑,如果有大寫(xiě)字母則會(huì)告警,如:
[2015-10-13 10:36:59] [WARNING] filepath `admin/controller/apiBase.js` has uppercases.
在 Node.js 環(huán)境下開(kāi)發(fā),有時(shí)候邏輯比較復(fù)雜,有各種條件判斷,或者有一些異步操作,這些都會(huì)增加代碼的縮進(jìn)。
為了不至于讓縮進(jìn)占用了太多的列寬,建議使用 2 個(gè)空格作為縮進(jìn)。
ES6 中有大量的語(yǔ)法糖可以簡(jiǎn)化我們的代碼,讓代碼更加簡(jiǎn)潔高效。 Node.js 最新版本已經(jīng)較好的支持了 ES6 的語(yǔ)法,即使有些語(yǔ)法不支持,也可以通過(guò) Babel 編譯來(lái)支持。 所以是時(shí)候使用 ES6 語(yǔ)法來(lái)開(kāi)發(fā)項(xiàng)目了。
使用 ES6 里的 class 來(lái)創(chuàng)建類的時(shí)候,可以使用 constrcutor
方法達(dá)到類實(shí)例化的時(shí)候自動(dòng)調(diào)用。如:
export default class think.base {
constructor(){
...
}
}
但如果不使用 ES6 里的 class,就沒(méi)有 constrcutor 方法了。
為了統(tǒng)一處理,ThinkJS 提供了 init
方法來(lái)代替 constrcutor
方法,該方法不管是在 class 下還是動(dòng)態(tài)創(chuàng)建類的情況下都可以做到類實(shí)例化的時(shí)候自動(dòng)被調(diào)用。
export default class think.base {
/**
* 初始化方法,類實(shí)例化時(shí)自動(dòng)被調(diào)用
* @return {} []
*/
init(){
...
}
}
注:
ThinkJS 里所有的類都會(huì)繼承 think.base
基類。
雖然現(xiàn)在的 Node.js 版本已經(jīng)支持了很多 ES6 的特性,但這些特性現(xiàn)在還只是實(shí)現(xiàn)了,V8 里還沒(méi)有對(duì)這些特性進(jìn)行優(yōu)化。如:*/yield
等功能。
所以建議使用 Babel 來(lái)編譯,一方面可以使用 ES6 和 ES7 幾乎所有的特性,另一方面編譯后的性能也比默認(rèn)支持的要高。
*/yield
是 ES6 里提出一種解決異步執(zhí)行的方法,它只是一個(gè)過(guò)渡的方案,ES7 里便提出了 async/await
來(lái)代替它。
相對(duì) async/await
,*/yield
有以下的缺陷:
1、*/yield
調(diào)用后返回一個(gè)迭代器,需要借助第三方模塊來(lái)執(zhí)行。如:co
2、*/yield
無(wú)法和 Arrow Function 一起使用。
3、*/yield
調(diào)用另一個(gè) */yield
時(shí),需要使用 yield *
,帶來(lái)不便。
4、目前 V8 對(duì) */yield
還沒(méi)有做優(yōu)化,最好也通過(guò) Babel 來(lái)編譯。
所以完全可以使用 ES7 里的 async/await
來(lái)代替 */yield
,然后使用 Babel 編譯來(lái)運(yùn)行。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: