<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                &emsp;&emsp;Node.js 不是一門語言,而是一個基于 V8 引擎的運行時環境,下圖是一張架構圖。 :-: ![](https://img.kancloud.cn/1e/45/1e458b1a1f4a9fc31d3bac4964a04a9f_1324x862.png =800x) &emsp;&emsp;由圖可知,Node.js 底層除了 JavaScript 代碼之外,還有大量的 C/C++ 代碼。 &emsp;&emsp;常說 Node.js 是單線程的,但這個單線程是指處理 JavaScript 的主線程是單的,像 I/O 任務都是多線程處理的。 ## 一、準備 &emsp;&emsp;要開發 Node.js 應用,首先需要下載安裝[Node.js](https://nodejs.org/en/),點擊下一步下一步就可完成。 :-: ![](https://img.kancloud.cn/3d/62/3d625ad82bf9891fc0008e92dd0091f1_1140x356.png =500x) &emsp;&emsp;值得一提的是,在官網中,還配套了一份 50 多篇的[入門教程](http://nodejs.cn/learn),每篇都不長,蠻通俗易懂的,可以閱讀一下。 &emsp;&emsp;然后需要一個編輯器,IDE編輯器(例如?[VS Code](https://code.visualstudio.com/Download)、[WebStream](https://www.jetbrains.com/webstorm/download/#section=mac)),或者是帶語言著色的文本編輯器(例如[CotEditor](https://coteditor.com/))都可以,看個人喜好。 &emsp;&emsp;寫完一個簡單的腳本文件后,觸發命令 node xx.js 就能運行了。 &emsp;&emsp;Node.js 在國內有個著名論壇[CNode](https://cnodejs.org/),其中有許多優秀的 Node.js 資料可供參考。 &emsp;&emsp;目前的前端開發肯定會涉及到工程化,所以或多或少需要 Node.js 環境,用[npm](https://www.npmjs.com/)命令下載或管理包。 &emsp;&emsp;但是如果要開發實際應用,那么就得需要了解 Node.js 的模塊。 ## 二、模塊 &emsp;&emsp;Node.js 賦予了 JavaScript 很多沒有的能力,例如讀寫文件、發起跨域的網絡請求、連接數據庫等。 &emsp;&emsp;前端邊界因 Node.js 變得很廣,一個前端也可以做后端的工作,俗稱全棧工程師。 &emsp;&emsp;在閱讀 Node.js 的[官方文檔](https://nodejs.org/dist/latest-v16.x/docs/api/)時,就會發現內容很詳盡,很多細節都會講到。 &emsp;&emsp;只是沒有上下文語境,缺乏代入感,有時候文檔讀起來就比較晦澀。 &emsp;&emsp;進入到官方文檔后,在左邊的菜單欄中有 60 多個選項,直接讀的話,會讓人睡著。 &emsp;&emsp;一般的話,可以配合其他教程,然后將官方文檔作為參考資料,當遇到不太明白的地方,再有針對性的瀏覽,效果會更佳。 &emsp;&emsp;本文推薦幾個常用的模塊,包括[fs文件模塊](https://nodejs.org/dist/latest-v16.x/docs/api/fs.html)、[http協議模塊](https://nodejs.org/dist/latest-v16.x/docs/api/http.html)、[path路徑模塊](https://nodejs.org/dist/latest-v16.x/docs/api/path.html)、[global全局變量](https://nodejs.org/dist/latest-v16.x/docs/api/globals.html)和[module模塊化](https://nodejs.org/dist/latest-v16.x/docs/api/modules.html)。 &emsp;&emsp;日常項目開發中肯定會涉及到上述一個或多個模塊。 ## 三、框架 &emsp;&emsp;真正項目開發時,很少需要從零開始,選擇成熟的框架主要就是為了提升工作效率。 &emsp;&emsp;市面上的框架有很多,例如[Express](https://expressjs.com/)、[KOA](https://koajs.com/)、[egg.js](https://www.eggjs.org/)、[Next.js](https://nextjs.org/)、[Nuxt.js](https://nuxtjs.org/)等,這些框架都有對應的中文文檔。 &emsp;&emsp;以我公司為例,選擇的是 KOA 框架,這是一個短小精悍的框架,[源碼](https://www.cnblogs.com/strick/p/16178207.html)只有 4 個文件。 &emsp;&emsp;雖然簡單,但擴展性很高,可以通過中間件的形式加載進來,例如路由、日志、權限驗證、[JWT](https://jwt.io/)認證等。 &emsp;&emsp;在將開發環境搭建好后,還得布置[單元測試](https://www.cnblogs.com/strick/p/15394115.html),框架都能集成單元測試,只要簡單的配置即可。 &emsp;&emsp;在 Node.js 中,有很多單測框架可供選擇,例如[Mocha](https://mochajs.org/)、[Jest](https://jestjs.io/)?等,斷言庫包括[Chai](https://www.chaijs.com/)、[assert 斷言模塊](http://nodejs.cn/api/assert.html)等。 &emsp;&emsp;接口測試有[SuperTest](https://github.com/visionmedia/supertest),測試替身庫有[Sinon](https://sinonjs.org/),可以模擬數據庫讀記錄。 ## 四、數據庫 &emsp;&emsp;開發 Node.js 的項目,離不開數據庫的處理。常用的數據庫有[MySQL](https://www.mysql.com/downloads/)和[MongoDB](https://www.mongodb.com/try/download)。 &emsp;&emsp;MySQL 官方給出的可視化操作工具是[Workbench](https://dev.mysql.com/downloads/workbench/),MongoDB 官方給出的可視化操作工具是[Compass](https://www.mongodb.com/try/download/compass)。 &emsp;&emsp;直接用 Node.js 作為項目持久層的并不多,很多時候都是作為數據中間層的角色存在。 &emsp;&emsp;因此,對數據庫的處理并不是很復雜,常用的也就是增刪改查,其中刪除很少是物理刪除,基本都是改個狀態。 &emsp;&emsp;以 MySQL 為例,常用的就是下面三類 SQL 語句。 ~~~ select * from table where id = 1; update table set name = 'strick' where id = 1; insert into table(name) values ('strick'); ~~~ &emsp;&emsp;當然,在日常開發中不需要手寫拼接 SQL 語句,既為了安全,也是為了可維護。 &emsp;&emsp;所以就需要常用的 ORM(對象關系映射),例如 MySQL 的?[Sequelize](https://sequelize.org/),MongoDB 的?[mongoose](https://mongoosejs.com/)。 &emsp;&emsp;至此,開發一個常規 Node.js 應用所需的知識儲備,已全部涉及到,接下來就是熟能生巧的過程了。 ***** > 原文出處: [博客園-Node.js躬行記](https://www.cnblogs.com/strick/category/1688575.html) [知乎專欄-Node.js躬行記](https://zhuanlan.zhihu.com/pwnode) 已建立一個微信前端交流群,如要進群,請先加微信號freedom20180706或掃描下面的二維碼,請求中需注明“看云加群”,在通過請求后就會把你拉進來。還搜集整理了一套[面試資料](https://github.com/pwstrick/daily),歡迎閱讀。 ![](https://box.kancloud.cn/2e1f8ecf9512ecdd2fcaae8250e7d48a_430x430.jpg =200x200) 推薦一款前端監控腳本:[shin-monitor](https://github.com/pwstrick/shin-monitor),不僅能監控前端的錯誤、通信、打印等行為,還能計算各類性能參數,包括 FMP、LCP、FP 等。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看