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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 手把手教你寫Hello Node [TOC] ### 運行nodejs 1.打開命令行,輸入`node`,然后回車,就進入命令交互模式了,可以輸入一條代碼語句后立即執行并顯示結果,例如: ~~~ $ node > console.log('Hello World!'); Hello World! ~~~ 2.如果你需要寫一大段代碼(一段腳本、一個工程等),第一種運行的方式就不適合了。 這時,我們可以創建一個js文件,比如 `index.js`,然后,在`index.js`中輸入要運行的代碼,例如: ~~~ function hello() { console.log('Hello World!'); } hello(); ~~~ 代碼寫完后,打開命令行,`cd`到`index.js`所在工作目錄,輸入 ~~~ $ node index.js ~~~ 回車運行,結果如下: ~~~ $ node hello.js Hello World! ~~~ 這種運行方式遵循 `node path`(`path`為文件所在的路徑,可以是絕對路徑也可以是相對路徑)的格式。所以,如果你懶得`cd`到`index.js`所在工作目錄,你也可以輸入相對路徑或者絕對路徑。 ### 模塊化 在前端開發過程中,我們習慣將代碼合理的拆分在不同的`js`文件中,編寫`NodeJs`也不例外,在`NodeJs`中,一個文件就是一個模塊,每個模塊都已經預定義好了3個變量——`require、exports、module`。 * require >`require`函數用于在當前模塊中加載和使用別的模塊,傳入一個模塊名,返回一個模塊導出對象。模塊名可使用相對路徑(以./開頭),或者是絕對路徑(以/或C:之類的盤符開頭)。另外,模塊名中的`.js`擴展名可以省略。 舉個栗子: ~~~ //index.js var foo1 = require('./foo'); var foo2 = require('./foo.js'); var foo3 = require('/home/user/foo'); var foo4 = require('/home/user/foo.js'); // foo1至foo4中保存的是同一個模塊的導出對象。 ~~~ 另外,可以使用以下方式加載和使用一個`JSON`文件。 ~~~ /賦值完成后,/變量data是一個json對象 var data = require('./data.json'); ~~~ * exports `exports`對象是當前模塊的導出對象,用于導出模塊公有方法和屬性。別的模塊通過`require`函數使用當前模塊時,得到的就是當前模塊的`exports`對象。以下例子中導出了一個公有方法。 ~~~ //foo.js //導出一個名為hello的方法 exports.hello = function () { console.log('Hello World!'); }; ~~~ 這里,我們和`require`結合起來用,假設我里創建了一個`index.js`文件,他和`foo.js`在同級目錄下,在`index.js`文件中引用`foo.js` ~~~ //index.js //引用foo.js文件導出對象 var foo= require('./foo.js'); //執行hello foo.hello(); ~~~ 代碼編寫完了,打開命令行,`cd`到`index.js`所在目錄,運行結果如下: ~~~ $ node index.js Hello World! ~~~ * module 通過`module`對象可以訪問到當前模塊的一些相關信息,但最多的用途是替換當前模塊的導出對象。例如模塊導出對象默認是一個普通對象,如果想改成一個函數的話,可以使用以下方式。 ~~~ module.exports = function () { console.log('Hello World!'); }; ~~~ 以上代碼中,模塊默認導出對象被替換為一個函數。 實際開發過程中,特別是有一定代碼量的項目,有一種做法,是把各個模塊對象化,模塊導出對象替換成自定義對象。下面舉個例子: ~~~ //user.js function User(pName){ this.name=pName; this.say=function(){ console.log('你好,我是隔壁 '+this.name); } } //將模塊導出對象替換為User module.exports=User; ~~~ ~~~ //index.js 引用user.js導出模塊 var User=require('./user.js'); //創建一個user對象 var user1=new User('老王'); //調用這個對象的say方法 user1.say(); ~~~ 你可以自行創建`index.js`和`user.js`這兩個文件,將上面的代碼拷貝到對應的文件,自己運行一下。這里,index.js是**模塊的入口**,也就是這個工程的**主模塊** >Tip:模塊初始化 一個模塊中的J`S`代碼僅在模塊第一次被使用時執行一次,并在執行過程中初始化模塊的導出對象。之后,緩存起來的導出對象被重復利用。 ### 使用NodeJs內置模塊 `NodeJs`內置了很多常用模塊,你可以在 [nodejs中文網](http://nodejs.cn/api/)上看到最新穩定版的API,下面舉個栗子來說明如何使用`NodeJs`的內置模塊。 ~~~ //引用NodeJs內置模塊文件系統模塊fs var fs=require('fs'); //在當前目錄下創建一個名為“dir”的文件夾,如果已存在,則報錯 fs.mkdirSync('dir'); ~~~ `NodeJs`的內置模塊直接通過模塊名稱引用即可 ### 使用第三方模塊 `NodeJs`只內置了我們常用的基本模塊,實際開發過程中我們常常會用到第三方模塊,這個時候`npm`就派上用場了。 這里,我們以第三方模塊——文件系統拓展模塊[fs-extra](https://www.npmjs.com/package/fs-extra)的使用為例。 1.初始化工程并生成`package.json`文件 ~~~ $ npm init ~~~ 2.安裝第三方模塊 ~~~ $ npm install fs-extra --save ~~~ 3.這個時候,你在當前工作目錄下可以看到,多了一個文件夾`node_modules`,打開`node_modules`,多了一個`fs-extra`的文件夾,這就是我們從`npm`上下載的第三方模塊`fs-extra`.我們可以開始使用了`fs-extra`模塊了。 ~~~ //index.js //引用第三方模塊fs-extra var fse=require('fs-extra'); //創建一個名為dir的文件夾,如果已存在則不創建 fse.ensureDirSync('dir'); ~~~ >Tips: 一個工程中,我們往往不只引入一個模塊,只要`package.json`存在,你就可以使用`npm install`命令引入所有你需要的模塊
                  <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>

                              哎呀哎呀视频在线观看