Node.js模塊

在實際工做中,編寫稍大一點的程序時通常都會將代碼模塊化。在NodeJS中,通常將代碼合理拆分到不一樣的JS文件中,每個文件就是一個模塊,而文件路徑就是模塊名。html

在編寫每一個模塊時,都有requireexportsmodule三個預先定義好的變量可供使用。node

內置模塊

Node.js有一組內置模塊,無需進一步安裝便可使用。例如assert、buffer、child_process、cluster等。 固然除了內置模塊,咱們也能夠經過 NPM 命令安裝第三方模塊。瀏覽器

模塊的使用

在使用一個模塊以前,咱們須要使用require()指令來載入模塊,以下所示:服務器

var http = require('模塊名');
示例:

例如使用應用程序訪問HTTP模塊,並建立服務器:模塊化

var http = require('http');
http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/html;charset=utf-8'});
    res.end('俠課島');
  }).listen(8888);

啓動文件後,在瀏覽器中訪問http://127.0.0.1:8888/ ,頁面會顯示"俠課島"三個字(這裏我就不截圖了,你們能夠本身試一下)。函數

如何建立模塊

除了可使用Node.js中的內置模塊,或者使用第三方模塊。咱們還能夠建立本身的模塊,而後將之包含在應用程序中。這其實很簡單,由於咱們知道文件和模塊是一一對應的,一個 Node.js 文件就是一個模塊。ui

示例:

建立一個返回日期和時間對象的模塊,保存爲mymodule.js中。其中 mymodule 是我給文件自定義的名字,這也是模塊的模塊名。以下所示:編碼

exports.myDateTime = function () {
  return Date();
};

上述代碼中,Date()就是用於獲取當前日期和時間的函數,exports 關鍵字的做用是使模塊文件外部的屬性和方法可用。這個也好理解,好比說如今有兩個js文件 one.js 和 two.js,若是咱們想要 two.js 中訪問 one.js 中的方法是不能夠的,那麼咱們要怎麼作呢? 就可使用 exports 把模塊接口公開,讓咱們能夠在另外一個文件中訪問這個模塊。3d

要在另外一個Node.js文件中使用上面建立的 mymodule 模塊,首先要作的就是引入這個mymodule模塊,而後再使用,以下所示:code

var http = require('http');
var dt = require('./mymodule');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
  res.write("當前日期和時間爲:  " + dt.myDateTime());
  res.end();
}).listen(8888);

將代碼保存到test_module.js文件中,而後運行文件,運行文件的命令以下所示:

node test_module.js

在瀏覽器中訪問http://127.0.0.1:8888/ ,頁面會顯示以下內容:

當前日期和時間爲: Thu Apr 02 2020 16:50:19 GMT+0800 (中國標準時間)

如圖所示:

注意一下上述代碼中使用了./來定位模塊,表示該模塊與Node.js文件位於同一文件夾中。必定要注意引入模塊時,模塊的路徑,不然查找不到模塊,則會報錯。

亂碼問題

若是咱們在代碼中使用中文,出現了亂碼問題,須要添加下面這句:

res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});

charset=utf-8用於設置編碼,表示當前文檔的字符集是採用utf-8的字符。utf-8是針對Unicode的一種可變長度字符編碼,能夠用來表示Unicode標準中的任何字符。

更多能夠查看:https://www.9xkd.com/3716132715.html

相關文章
相關標籤/搜索