溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Node.js里面的內置模塊和自定義模塊的實現方法

發布時間:2021-05-08 11:12:19 來源:億速云 閱讀:257 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關Node.js里面的內置模塊和自定義模塊的實現方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一、Commonjs

  • Commonjs是nodejs中的自定義模塊

  • Commonjs規范的提出,彌補javascript沒有標準的缺陷,提供一個類似后端語言的標準庫,也就是說commonjs是模塊化的標準,nodejs就是commonjs模塊化的實現。在nodejs中除了http,url,fs等等都是nodejs的內置模塊,可以直接使用.

  • commonjs中自定義模塊的實現:

  • 在nodejs中將公共的功能抽離為單獨的js文件作為模塊,在外部是沒有辦法訪問的(類似后端的私有的屬性和方法);要想使用模塊,就必須在模塊里面通過exports或者module.exports暴露屬性或者方法。在需要的模塊使用require引入模塊。

Node.js里面的內置模塊和自定義模塊的實現方法

二、模塊導出兩個方案

方案一

let str={};
module.exports=str;

方案二

let str={};
exports.A=str;

三、自定義模塊寫法

common.js

// node里面的內置模塊和自定義模塊
// 模塊導出兩個方案
let str={};
module.exports=str;
exports.A=str;

// 引入模塊得使用require("")加載模塊
let todo=require("./todo");//可以省略后綴
console.log(todo);

todo.js

module.exports={
   name:"張三",
   sleep:function(){
       console.log("睡覺");
   }
}

或者

module.exports={
   name:"張三",
   sleep:function(){
       console.log("睡覺");
   }
}
  • node里面的require()加載模塊的時候可以直接寫名稱,但是必須放在依賴下加載,并且還要生成配置文件

  • 終端進入依賴文件,安裝配置文件

  • nodejs 可以自動找node_modules文件下的文件 :如果node_modules文件下有文件夾 可在cd進入這個文件 使用命令cnpm init --yes 安裝當前文件的package.json文件,直接請求require(“名字”);

案例一

common.js

// 引入模塊得使用require("")加載模塊
let todo=require("./todo");//可以省略后綴
console.log(todo);

// node里面的require()加載模塊的時候可以直接寫名稱,但是必須放在依賴下加載,并且還要生成配置文件
// 終端進入依賴文件,安裝配置文件
let fetch=require("Fetch");
console.log(fetch);
fetch.get("http://www.zjm.com");

Fetch.js

module.exports={
   get(url){
       console.log(url);
   }
}

案例二

common.js

let Axios = require("Axios");
let url = "https://autumnfish.cn/search";
let data = { keywords: '西安' };
const http = require("http");
let app = http.createServer((req, res) => {
   res.writeHead(200, { "Content-Type": "text/html;charset=utf-8" });
   Axios.get(url, { params: data }).then((result) => {
       res.write(result);
       res.end();
   });
});
app.listen(8080)

Axios.js

const http = require("http");
const https=require("https");
//轉化方法
let change = (args) => {
   let str = "?";
   for (let key in args) {
       str += key + "=" + args[key];
       str += "&";
   }
   return str.slice(0, str.length - 1);
}
module.exports = {
   get(href, { params }) {
       return new Promise((resolve, reject) => {
           href += change(params);
           https.get(href, (res) => {
               let { statusCode } = res;
               let error;
               if (statusCode != 200) {
                   error = new Error('Request Failed.\n' +
                       `Status Code: ${statusCode}`);
               }
               if (error) {
                   console.error(error.message);
                   // Consume response data to free up memory
                   res.resume();
                   return;
               }
               //設置響應編碼
               res.setEncoding("utf8");
               let alldata = "";
               //監聽數據
               res.on("data", (info) => {
                   alldata += info;
               })
               res.on("end", () => {
                   let data =alldata;
                   resolve(data);
               })
           });
       });
   },
   post() {

   }
}

關于“Node.js里面的內置模塊和自定義模塊的實現方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女