windows下《七天學會NodeJS》學習筆記之一--NodeJS基礎

來源:互聯網
上載者:User

標籤:style   blog   http   io   ar   color   os   使用   sp   

  1. 什麼是NodeJS。瀏覽器可以解析JS,NodeJS也可以解析JS,它就是一個JS的解析器。瀏覽器利用JS操作DOM,而NodeJS利用JS操作磁碟檔案或搭建HTTP伺服器。NodeJS的作者創造NodeJS的目的是為了實現高效能的Web伺服器,所以他首先看重的是事件機制和非同步IO模型的優越性。
  2. 安裝nodejs,可能考本部落格中的 windows下搭建node.js及npm的工作環境 。可再次進行如下測試,在命令列中輸入node,進行node命令列,輸入console.log(‘Hello World!‘),可看到控制台的輸出Hello World!。也可編寫一名為hello.js的JS檔案,內容如下: function hello() { console.log(‘Hello World!‘); } hello();

    寫好後,在命令列輸入node hello.js運行,也可看到輸出。 3.模組化。NodeJS中,將JS代碼合理拆分到不同的JS檔案中,一個檔案就是一個模組,而檔案路徑就是模組名。在編寫模組時,有requireexportsmodule三個預先定義好的變數可供使用。

  3. require :用於在當前模組中載入和使用別的模組,傳入一個模組名,返回一個模組匯出對象。模組名可使用相對路徑(以./開頭),或者是絕對路徑(以/或C:之類的盤符開頭)。另外,模組名中的.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檔案。

    var data = require(‘./data.json‘);
  4. exports

    exports對象是當前模組的匯出對象,用於匯出模組公有方法和屬性。別的模組通過require函數使用當前模組時得到的就是當前模組的exports對象。以下例子中匯出了一個公有方法。

    exports.hello = function () { console.log(‘Hello World!‘); };

  5. module

    通過module對象可以訪問到當前模組的一些相關資訊,但最多的用途是替換當前模組的匯出對象。例如模組匯出對象預設是一個普通對象,如果想改成一個函數的話,可以使用以下方式。

    module.exports = function () {    console.log(‘Hello World!‘);};

    以上代碼中,模組預設匯出對象被替換為一個函數。

  6. 模組初始化:一個模組中的JS代碼僅在模組第一次被使用時執行一次,並在執行過程中初始化模組的匯出對象。之後,緩衝起來的匯出對象被重複利用。

  7. 主模組

    直接通過命令列參數傳遞給NodeJS以啟動程式的模組被稱為主模組。主模組負責調度組成整個程式的其它模組完成工作。例如通過node main.js命令啟動程式時,main.js就是主模組。

  8. 一個完整樣本

    例如有以下目錄。

    - F:\hello    - util        counter.js    main.js

    其中counter.js內容如下:

    var i = 0;function count() {    return ++i;}exports.count = count;

    該模組內部定義了一個私人變數i,並在exports對象匯出了一個公有方法count。

    主模組main.js內容如下:

    var counter1 = require(‘./util/counter‘);var    counter2 = require(‘./util/counter‘);console.log(counter1.count());console.log(counter2.count());console.log(counter2.count());

    運行該程式的結果如下:

    $ node main.js123

    可以看到,counter.js並沒有因為被require了兩次而初始化兩次。

  9. 二進位模組

nodejs即支援命名用JS編寫的模組,也支援使用C/C++編寫二進位模組,但是不要輕易使用二進位模組。

windows下《七天學會NodeJS》學習筆記之一--NodeJS基礎

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.