Node http、url、自定義模塊

一、下載node,安裝node環境

二、使用vscode開發,簡單配置開發環境

安裝Nodejs開發插件
在這裏插入圖片描述

三、Http模塊

Server.js:

// 創建node服務器  使用http模塊
var http=require("http");
// req指代url信息    res指的是瀏覽器返回的響應信息  listen()指監聽的端口號
http.createServer(function(req,res){
    if(req.url!="/favicon.ico"){
        console.log(req.url);
        //設置http的響應頭
        res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
        res.write("nodejs服務器");   
    }
    //請求完成之後,響應結束
    res.end();
}).listen(8100);

四、url模塊

Server.js:

/* 
    http://localhost:8100/?id=1&name=zhangsan
    想要解析路徑上的值 需要引入url模塊
*/
var http=require("http");
var url=require("url");
http.createServer(function(req,res){
    if(req.url!="/favicon.ico"){ 
        let path=url.parse(req.url,true);  //url.parse 解析路徑上的get傳值; true指解析出來爲json數據格式
        let data=path.query;
        console.log(data);
    
        res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
        res.write("nodejs服務器");   
    }
    res.end();
}).listen(8100);

只設置參數1(未解析):
在這裏插入圖片描述
設置了兩個參數(已解析):
在這裏插入圖片描述

補充:在nodejs中文件修改需要重啓服務:這樣開發比較慢,可安裝自啓動工具supervisor

npm install –g supervisor 

安裝完成後啓動文件使用 supervisor ****.js
啓動服務後,修改代碼會自動啓動服務

五、自定義模塊

Commonjs nodejs中的自定義模塊:
Commonjs規範的提出,彌補javascript沒有標準的缺陷,提供一個類似後端語言的標準庫,也就是說commonjs是模塊化的標準,nodejs就是commonjs模塊化的實現。在nodejs中除了http,url,fs等都是nodejs的內置模塊,可直接使用,commonjs中自定義模塊的實現:
在nodejs中將公共的功能抽離爲單獨的js文件作爲模塊,在外部是沒有辦法訪問的(類似後端的私有的屬性和方法);要想使用模塊,就必須在模塊裏面通過exports或者module.exports暴露屬性或者方法。在需要的模塊使用require引入模塊。
在這裏插入圖片描述

  1. 模塊化封裝導入

引用上例Server.js,加入模塊暴露:

var http=require("http");
var url=require("url");
let server=http.createServer(function(req,res){
    if(req.url!="/favicon.ico"){ 
        let path=url.parse(req.url,true); 
        let data=path.query;
        console.log(data.id);
    
        res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
        res.write("nodejs服務器");   
    }
    res.end();
}).listen(8100);
//進行模塊暴露
module.exports=server;

在App.js中接收:

let server=require("./Server");
  1. 數據型模塊封裝

Server.js:

var http=require("http");
var url=require("url");

var stu=require("./student");  //導入
let server=http.createServer(function(req,res){
    if(req.url!="/favicon.ico"){ 
        let path=url.parse(req.url,true);  
        let data=path.query;
        res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
        
        let name=stu.name;
        res.write(name);   
    }
    res.end();
}).listen(8100);
module.exports=server;

student.js:

let stu={
    name:"yian",
    job:"student"
}
module.exports=stu;
  1. 函數型模塊封裝

Server.js:

var http=require("http");
var url=require("url");

var fun=require("./collection");
let server=http.createServer(function(req,res){
    if(req.url!="/favicon.ico"){ 
        let path=url.parse(req.url,true);  
        let data=path.query;
        res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});

        console.log(fun());
        res.write(name);   
    }
    res.end();
}).listen(8100);
module.exports=server;

collection.js:

module.exports=function(){
    var s="123";
    return s;
}

說明:nodejs 可以自動找node_modules文件下的文件 :

  • 如果node_modules文件下沒有文件夾,可將文件新建到其下;
  • 如果node_modules文件下有文件夾,可在cd進入這個文件,使用命令npm init –yes,安裝當前文件的package.json文件,直接請求require(“名字”)

collection.js:

module.exports=function(){
    var s="123";
    return s;
}

App.js:

let fun=require("collection");
console.log(fun());

在這裏插入圖片描述

六、第三方包模塊和 package.json 項目文件

  1. 創建 node項目後先使用命令進入項目文件,安裝項目的配置文件package.json;
    使用命令 npm init /cnpm initnpm init –yes/cnpm init –yes (嚴格模式命名)

package.json:

{
  "name": "node03",
  "version": "1.0.0",
  "description": "",
  "main": "App.js",
  "dependencies": {},
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node server.js"
  },
  "author": "",
  "license": "ISC"
}
  1. Nodejs第三方包的使用(第三方包使用建議官網:www.npmjs.com)

例如第三方包: md5-node包(只可加密,不可解密)

  • 安裝包:npm install md5-node –-save

  • 安裝完之後項目裏生成一個node_modules依賴文件

  • 使用:

//使用第三方包
var md5=require('md5-node');
console.log(md5('123456')); //e10adc3949ba59abbe56e057f20f883e

md5加密,是按照加密之後的值進行比對

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章