<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"><channel><title>MagicLen</title><link>https://magiclen.org/tag/node-js/feed</link><description>多元化原創文章，內容包羅萬象，有程式語言、網站應用、軟體介紹、硬體介紹、作業系統、旅行遊記、專題採訪、益智問題、文學創作，以及作者們的知識分享和作品分享。</description><language>zh-TW</language><lastBuildDate>Sun, 19 Apr 2026 07:30:58 +0000</lastBuildDate><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>8</sy:updateFrequency><sy:updateBase>1970-01-01T00:00+00:00</sy:updateBase><item><title>如何讓 JavaScript 程式等待(睡眠)一段時間？</title><link>https://magiclen.org/javascript-sleep</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2022/12/bird-7512017_1920-220x162.jpg" srcset="https://magiclen.org/wp-content/uploads/2022/12/bird-7512017_1920-220x162.jpg 1x, https://magiclen.org/wp-content/uploads/2022/12/bird-7512017_1920-440x324.jpg 2x, https://magiclen.org/wp-content/uploads/2022/12/bird-7512017_1920-660x486.jpg 3x" alt="">
雖然在撰寫程式的時候，在大部份的情況下我們都想要讓程式執行速度愈快愈好。但有時候在寫測試程式或是爬蟲時，我們會希望讓程式等待一段時間再繼續執行，以模擬I/O延遲或是真人操作延遲的效果。不過JavaScript並沒有直接提供讓執行緒睡眠(sleep)的功能，要怎麼模擬出sleep函數呢？]]></description><category>研究分享</category><category>JavaScript</category><category>JavaScript</category><category>node.js</category><category>TypeScript</category><category>爛Code</category><guid>https://magiclen.org/javascript-sleep</guid><pubDate>Tue, 27 Dec 2022 12:00:00 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>JavaScript 要如何複製物件？</title><link>https://magiclen.org/javascript-clone</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2022/11/dna-6896923_1920-220x162.jpg" srcset="https://magiclen.org/wp-content/uploads/2022/11/dna-6896923_1920-220x162.jpg 1x, https://magiclen.org/wp-content/uploads/2022/11/dna-6896923_1920-440x324.jpg 2x, https://magiclen.org/wp-content/uploads/2022/11/dna-6896923_1920-660x486.jpg 3x" alt="">
在寫JavaScript程式的時候經常看到一些奇妙的程式碼被用來處理物件的複製，這篇文章會列舉筆者看到的一些作法，並提供較好的作法給大家參考。]]></description><category>研究分享</category><category>JavaScript</category><category>node.js</category><category>TypeScript</category><category>爛Code</category><guid>https://magiclen.org/javascript-clone</guid><pubDate>Thu, 8 Dec 2022 12:00:00 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>使用 Fastify 框架以及 TypeScript 語言來開發 Web 服務的起手式</title><link>https://magiclen.org/fastify-in-typescript</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2022/10/fastify-in-typescript-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2022/10/fastify-in-typescript-220x162.png 1x, https://magiclen.org/wp-content/uploads/2022/10/fastify-in-typescript-440x324.png 2x, https://magiclen.org/wp-content/uploads/2022/10/fastify-in-typescript-660x486.png 3x" alt="">
Fastify是一個運行在Node.js上的Web框架，注重開發體驗和低開支(overhead)，提供完整的Web框架特性，但也保有良好的效能，效能要比Express框架還好上不少。Fastify支援TypeScript語言，筆者建議使用TypeScript來開發Fastify應用程式。然而，要建立出一個完整TypeScript專案是一件繁瑣的事情，我們會需要安裝多種套件及工具並撰寫設定檔和程式碼...]]></description><category>JavaScript</category><category>JavaScript</category><category>node.js</category><category>TypeScript</category><category>Fastify</category><guid>https://magiclen.org/fastify-in-typescript</guid><pubDate>Thu, 24 Nov 2022 12:00:00 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>如何統一「NODE_ENV」環境變數在不同作業系統下的設定方式？</title><link>https://magiclen.org/run-with-node-env</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2022/11/soil-5342049_1920-220x162.jpg" srcset="https://magiclen.org/wp-content/uploads/2022/11/soil-5342049_1920-220x162.jpg 1x, https://magiclen.org/wp-content/uploads/2022/11/soil-5342049_1920-440x324.jpg 2x, https://magiclen.org/wp-content/uploads/2022/11/soil-5342049_1920-660x486.jpg 3x" alt="">
「NODE_ENV」是使用Node.js常去設定的環境變數，不過它其實並不是Node.js本身會去使用到的環境變數，而是這個生態系約定俗成的用法。在Linux、macOS等Unix-like的作業系統環境下，要設定程式的環境變數的值，只要在執行指令的前面加上「變數&#x3D;值」並用空格隔開即可，但在如Windows等其它作業系統，指令就不支援這樣的語法。]]></description><category>JavaScript</category><category>JavaScript</category><category>node.js</category><category>run-with-node-env</category><guid>https://magiclen.org/run-with-node-env</guid><pubDate>Thu, 17 Nov 2022 12:00:00 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>建立 TypeScript 專案的起手式</title><link>https://magiclen.org/typescript-start-new-project</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2022/08/shot-02-2-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2022/08/shot-02-2-220x162.png 1x, https://magiclen.org/wp-content/uploads/2022/08/shot-02-2-440x324.png 2x, https://magiclen.org/wp-content/uploads/2022/08/shot-02-2-660x486.png 3x" alt="">
JavaScript有著資源豐富的生態圈，但同時也令人在面對這一堆套件、工具以及設定時眼花撩亂、不知所措。TypeScript能用比較嚴謹的方式來開發JavaScript程式，可以大大地提升程式碼的可維護性，也可以增加多人協作時的效率。筆者甚至覺得我們都應該用TypeScript來編寫JavaScript程式會比較好。然而，要建立出一個完整TypeScript專案是一件繁瑣的事情，我們會需要安裝多...]]></description><category>JavaScript</category><category>JavaScript</category><category>node.js</category><category>TypeScript</category><guid>https://magiclen.org/typescript-start-new-project</guid><pubDate>Thu, 10 Nov 2022 12:00:00 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>如何在Webpack中使用TypeScript？</title><link>https://magiclen.org/webpack-typescript</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2019/08/typescript-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2019/08/typescript-220x162.png 1x, https://magiclen.org/wp-content/uploads/2019/08/typescript-440x324.png 2x, https://magiclen.org/wp-content/uploads/2019/08/typescript-660x486.png 3x" alt="">
Webpack是JavaScript的模組建置工具，運行在Node.js上，它可以將零散的JavaScript檔案用各式工具優化並打包起來，加快網頁的載入時間。Webpack也並不限於用在JavaScript上，它除了還能打包網頁有用到的靜態資源(如JS、CSS、圖片檔等)外，也還能透過TypeScript的載入器(loader)來編譯並打包TypeScript程式碼。]]></description><category>JavaScript</category><category>JavaScript</category><category>node.js</category><category>Webpack</category><category>Babel</category><category>TypeScript</category><guid>https://magiclen.org/webpack-typescript</guid><pubDate>Tue, 14 Jan 2020 12:00:37 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>TypeScript 學習之路─第十八章：裝飾器(Decorator)</title><link>https://magiclen.org/typescript-decorator</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2019/08/typescript-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2019/08/typescript-220x162.png 1x, https://magiclen.org/wp-content/uploads/2019/08/typescript-440x324.png 2x, https://magiclen.org/wp-content/uploads/2019/08/typescript-660x486.png 3x" alt="">
裝飾器(Decorator)是一種程式設計模式(Design Pattern)，在某些情況下可以用來替代繼承(inheritance)，以更靈活、輕量的方式重用程式碼。]]></description><category>研究分享</category><category>JavaScript</category><category>JavaScript</category><category>node.js</category><category>TypeScript</category><category>TypeScript 學習之路</category><guid>https://magiclen.org/typescript-decorator</guid><pubDate>Thu, 9 Jan 2020 12:00:17 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>TypeScript 學習之路─第十七章：命名空間(namespace)</title><link>https://magiclen.org/typescript-namespace</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2019/08/typescript-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2019/08/typescript-220x162.png 1x, https://magiclen.org/wp-content/uploads/2019/08/typescript-440x324.png 2x, https://magiclen.org/wp-content/uploads/2019/08/typescript-660x486.png 3x" alt="">
JavaScript如果要替名稱加上命名空間，不外乎就是利用物件或是模組來達成。但在TypeScript中，有「namespace」關鍵字可以讓我們快速地新增命名空間來用。]]></description><category>研究分享</category><category>JavaScript</category><category>JavaScript</category><category>node.js</category><category>TypeScript</category><category>TypeScript 學習之路</category><guid>https://magiclen.org/typescript-namespace</guid><pubDate>Tue, 7 Jan 2020 12:00:53 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>TypeScript 學習之路─第十六章：模組</title><link>https://magiclen.org/typescript-module</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2019/08/typescript-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2019/08/typescript-220x162.png 1x, https://magiclen.org/wp-content/uploads/2019/08/typescript-440x324.png 2x, https://magiclen.org/wp-content/uploads/2019/08/typescript-660x486.png 3x" alt="">
我們先前所練習的TypeScript程式幾乎都只是把程式敘述寫在「index.ts」檔案中，雖然我們已經會使用函數、類別來分割不同功能的程式，但當程式愈寫愈多的時候，這樣的作法還是會讓程式變得難以維護。這時就需要用到TypeScript提供的「模組」系統了。]]></description><category>研究分享</category><category>JavaScript</category><category>JavaScript</category><category>node.js</category><category>TypeScript</category><category>TypeScript 學習之路</category><guid>https://magiclen.org/typescript-module</guid><pubDate>Thu, 2 Jan 2020 12:00:39 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>TypeScript 學習之路─第十五章：用「async / await」語法擺脫難以閱讀的非同步程式</title><link>https://magiclen.org/typescript-async-await</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2019/08/typescript-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2019/08/typescript-220x162.png 1x, https://magiclen.org/wp-content/uploads/2019/08/typescript-440x324.png 2x, https://magiclen.org/wp-content/uploads/2019/08/typescript-660x486.png 3x" alt="">
上一章介紹的「Promise」雖然可以將非同步程式用看起來像同步程式的方式來撰寫，但寫法還是與實際的同步程式有不小的差異。也因為「Promise」有這樣的問題，所以後來的ES2017引入了「async / await」語法，可以完全地以同步程式的寫法使用非同步程式。]]></description><category>研究分享</category><category>JavaScript</category><category>JavaScript</category><category>node.js</category><category>TypeScript</category><category>TypeScript 學習之路</category><guid>https://magiclen.org/typescript-async-await</guid><pubDate>Tue, 31 Dec 2019 12:00:12 +0800</pubDate><dc:creator>Magic Len</dc:creator></item></channel></rss>