<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] ## 1. node.js是什么 * 不是一門語言,不是庫,亦不是框架 * 是JavaScript語言的服務器運行環境 * Node內部采用Google公司的V8引擎,作為JavaScript語言解釋器;通過自行開發的libuv庫,調用操作系統資源 ### 1.1 基本用法 #### 1.1.1 讀取執行JavaScript腳本 例如: 當前目錄的demo.js腳本文件 ~~~ $ node demo # 或者 $ node demo.js ~~~ #### 1.1.2 REPL環境 在命令行直接輸入node后回車就會進入REPL環境(Read–eval–print loop,”讀取-求值-輸出”循環) ~~~ $ node > 1+2 3 > ~~~ ### 1.2 異步操作 Node約定,如果某個函數需要回調函數作為參數,則回調函數是最后一個參數。另外,回調函數本身的第一個參數,約定為上一步傳入的錯誤對象。 ~~~ var isTrue = function(value, callback) { if (value === true) { callback(null, "value is true") } else { callback(newError("value is not true") } } var callback = function (error, res) { if (error) { return console.log(error) } console.log(res) } } ~~~ ### 1.3全局對象和全局變量 >[warning] node提供的全局對象和全局變量,是所有模塊都可以調用的,無需使用`require()` * 全局對象 ~~~ global: 表示Node所在的全局環境,類似于瀏覽器的window對象 process: 該對象表示Node所處的當前進程,允許開發者與該進程互動 console: 指向Node內置的console模塊,提供命令行環境中的標準輸入、標準輸出功能 ~~~ * 全局函數 ~~~ setTimeout(): 用于在指定毫秒之后,運行回調函數 clearTimeout(): 用于終止一個setTimeout方法新建的定時器 setInterval(): 每隔一定毫秒調用回調函數 clearInterval(): 終止一個用setInterval方法新建的定時器 require(): 用于加載模塊 Buffer(): 用于操作二進制數據 ~~~ * 全局變量 ~~~ __filename: 指向當前運行的腳本文件名 __dirname: 指向當前運行的腳本所在的目錄 ~~~ ## 2. 模塊系統 ### 2.1 模塊加載 `require`命令用于指定加載模塊 加載當前目錄下的腳本 ~~~ var rule = require('./rule.js') // 或者 var rule = require('./rule') ~~~ 如果加載node的安裝目錄下的腳本 ~~~ var bar = require('bar') ~~~ ### 2.2 核心模塊 node.js提供了一系列功能模塊,用于與操作系統互動 [查看所有模塊可參考Node.js v10.16.2 文檔](http://nodejs.cn/api/assert.html) ~~~ http: 提供HTTP服務器功能 url: 處理與解析 URL fs: 與文件系統交互 child_process: 衍生子進程 path: 處理文件路徑和目錄路徑 os: 操作系統相關的實用方法 crypto: 加密功能,包括對 OpenSSL 的哈希、HMAC、加密、解密、簽名、以及驗證功能的一整套封裝。 // ... ~~~ ### 2.3 自定義模塊 ~~~ // out.js module.exports = { print: function(value) { console.log(value) }, str: 'hi' } ~~~ ~~~ var m = require('./out.js') m.print(m.str) ~~~ ## 3. 異常處理 ### 3.1 try catch捕獲異常 但是該結構無法捕獲異步運行的代碼拋出的異常 ~~~ try { var m = 1 var n = m + z } catch (err) { // 在這里處理錯誤 } ~~~ ### 3.2 回調函數 將錯誤對象作為第一個參數傳入回調函數。 ~~~ var fs = require('fs') function errorFirstCallback(err, data) { if (err) { console.error('There was an error', err) return } console.log(data) } fs.readFile('/some/file/that/does-not-exist', errorFirstCallback) fs.readFile('/some/file/that/does-exist', errorFirstCallback) ~~~ ### 3.3 EventEmitter接口的error事件 發生錯誤時,也可以用EventEmitter接口拋出error事件 ~~~ var EventEmitter = require('events').EventEmitter; var emitter = new EventEmitter(); emitter.emit('error', new Error('something bad happened')); // 需要對error事件部署監聽函數,不然會導致整個應用程序崩潰 emitter.on('error', function(err) { console.error('出錯:' + err.message); }) ~~~
                  <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>

                              哎呀哎呀视频在线观看