03_Node js 模塊化 CommonJS

1、什麼是 CommonJS?

CommonJS 就是爲 JS 的表現來制定規範,由於 JS 沒有模塊系統,標準庫較少,缺少包管理工具,因此 CommonJS 應運而生,它但願 JS 能夠在任何地方運行,而不僅是在瀏覽器中,從而達到 Java、C#、PHP 這些後端語言具有開發大型應用的能力。node

2、CommonJS 的應用

  • 服務器端 JavaScript 應用程序(Node.js)。
  • 命令行工具。
  • 桌面圖形界面應用程序。

3、CommonJS 與 Node.js 的關係?

CommonJS 就是模塊化的標準,Node.js 就是 CommonJS(模塊化)的實現。後端

4、Node.js 中的模塊化?

在 Node 中,模塊分爲兩類:瀏覽器

  • 一是 Node 提供的模塊,稱爲核心模塊,例如 http 模塊、url 模塊、fs 模塊。bash

  • 二是用戶編寫的模塊,稱爲文件模塊,好比接下來要新建一個 js 文件,並在裏邊添加的工具模塊,經過 exports 或者 module.exports 將模塊導出,並經過 require 引入這些模塊。服務器

5、實例

首先新建一個 js 文件,在裏邊添加工具模塊,並暴露模塊。模塊化

暴露模塊的方式有兩種:工具

  • exports
  • module.exports

module.exports 是真正的接口,exports 是一個輔助工具。ui

若是 module.exports 爲空,那麼全部的 exports 收集到的屬性和方法,都賦值給了 module.exports,若是 module.exports 具備任何屬性和方法,則 exports 會被忽略。url

一、exports 使用方法:

let str = "learning CommonJS";
exports.str = str; // {str: "learning CommonJS"}
複製代碼

二、module.exports 使用方法:

暴露出 tools 工具模塊,經過 require 導入使用(與 url 模塊和 http 模塊的引入方式相同)。spa

在下面代碼中咱們是用 module.exports 方式來暴露模塊。

tools.js

const tools = {
    length: (...numbers) => {
        return numbers.length;
    },
    sum: (...numbers) => {
        let sum = 0;
        for (let number in numbers) {
            sum += numbers[number]
        };
        return sum;
    }
};
module.exports = tools;
複製代碼

接下來再新建一個 js 文件,並引入剛編寫的模塊。

CommonJS.js

const tool = require('./tools.js')
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((request, response) => {
    if (request.url != '/favicon.ico') {
        console.log(tool.length(1,2,3));
        console.log(tool.sum(1,2,3));
    };
    response.statusCode = 200;
    response.setHeader('Content-Type', 'text/plain;charset=utf-8');
    response.end('CommonJS,調取了 tool.js 工具模塊中的 length() 和 sum() 兩個方法。');
});
server.listen(port, hostname, () => {
    console.log(`服務器運行在 http://${hostname}:${port}`);
});
複製代碼

執行 node CommonJS.js,訪問:127.0.0.1:3000/

3
6
複製代碼

期待您的關注!

相關文章
相關標籤/搜索