国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

NodeJs模塊實例01_http和url

2024-04-27 15:11:53
字體:
來源:轉載
供稿:網友

1.什么是Node

node是js語言的服務器運行環境(類似于php和apache)

nodejs提供大量的工具庫,使得javascirpt可以調用操作系統級別的api。

node采用谷歌的v8引擎(javascipt語言解釋器),速度非??旄鷍s環境不一樣,一個是運行在服務器,一個運行在客戶端

node是一個基于事件驅動和異步io的服務器Javascript環境

還有一些基礎:

回調:異步編程的基本方法,采用后續函數傳遞的方式,把后續的處理函數作為參數進行執行

同步和異步(阻塞非阻塞):Ajax的時候說過

單線程和多線程

單線程按順序執行,多線程可以同時執行

2.一個簡單Node實例

建立一個文件node.js

function sum(a,b) {

   return a+b;

}

console.log(sum(5,6));

在控制臺下運行node node.js就會輸出結果11

3.node模塊化實例

建立一個require.js文件,引入當前目錄下的home.js文件

var home = require("./home.js");//點斜杠表示在當前目錄下找該文件。若沒有./則會默認在當前目錄的node_modules目錄下查找home.js文件,這種情況下需要在node_modules里面建立該文件,若沒有后綴默認找的是文件夾里面的index文件

home.show();//引入的home.js里面的方法

console.log(sum(5,6));

引入的home.js文件

function show() {

   console.log("模塊加載成功!");

}

exports.show = show;//防止命名沖突。home指定外部模塊exports等于show()方法,show()方法通過exports返回require.js。類似return一個函數

//或者module.exports.show= show();

//相當于定義了var exports =module.exports;

在控制臺運行node 2.require顯示“模塊加載成功”

4.http模塊應用實例

node自帶有很多模塊,其中包括http模塊,使用之前需要reuqire加載進來

var http = require("http");

//req:請求

//res:response響應

var server = http.createServer(function(req,res) {//創建服務器對象,包含回調函數及兩個參數req和res

       console.log(req.url);//返回請求地址

   //返回頁面的頭文件,設置編碼等(防止可能返回的亂碼)

   res.writeHead(200,{"Conten-type":"text/htmlcharset=utf-8"})

   //res.write("響應的內容");

   res.end("<a href=''###'>響應結束</a>");

})

server.listen(8080,function () {

   console.log("開啟成功:http://local:8080");

})

在終端運行node 3.http,顯示開啟成功:http://localhost:8080,打開網頁顯示res.end的結果,若修改了代碼需要重啟服務器

如果我們在瀏覽器地址欄的http://localhost:8080后面加上/等符號回車,可以看到console.log(req.url);在控制臺打印出輸入的相應的符號,由此可以可以用輸入的/地址來判斷用戶要訪問的頁面來給它顯示需要的頁面

那么js文件可以這樣寫

var http = require("http");

/*

 *req:request請求

 *res:response響應

 *res.writeHead設置請求頭

 * */

var server = http.createServer(function(req,res) {

   console.log(req.url);

   if(req.url=="/" || req.url=="/index"){//訪問主頁用斜杠或者/index

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

       res.end("首頁");

 

   }else if(req.url=="/login"){//訪問login頁面

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

       res.end("登陸頁");

   }else{//若用戶訪問的頁面不存在,返回404結果

       res.writeHead(404,{"Content-type":"text/html;charset=utf-8"});

       res.end("沒有找到該頁面");

    }

})

server.listen(8080,function () {

   console.log("開啟成功:http://localhost:8080");

})

重啟服務器,瀏覽器訪問localhost:8080,默認顯示主頁返回結果“首頁”,地址后面加上/login返回“登陸”,嘗試訪問其他頁面返回“404,沒有找到該頁面”

5.url模塊應用實例

node里面的url模塊用于處理地址,根據地址獲取請求信息,比如發送姓名和年齡

var http = require("http");

var url = require("url");

var server = http.createServer(function(req,res) {

   // url.parse第二個參數bol 如果true返回對象的query屬性會轉為json對象

   var urlObj = url.parse(req.url,true);

   console.log(urlObj);//終端返回請求的地址信息

 

   res.end("姓名:"+urlObj.query.name+";年齡:"+urlObj.query.age);

 

})

 

server.listen(8080,function () {

   console.log("開啟成功:http://localhost:8080");

})

 

測試時在終端開始服務器,在瀏覽器地址欄輸入http://localhost:8080/?name=abc&age=12,在瀏覽器中就會返回“姓名:abc;年齡:12”信息。此方式為get請求方式,post請求方式如下:index.html包含form表單文件:

<formaction="http://localhost:8080" method="post">

       <input type="text" name="user">

        <input type="text"name="pwd">

       <input type="submit">

</form>

 

js文件:

var http = require("http");

var fs = require("fs");

var server =http.createServer(function(req,res){

   //獲取POST傳送的數據

   req.on("data",function (data) {

       console.log(data.toString());

   })

 

   var url = req.url;

   // "/" "index.html"

   if(url=="/"){

       url = "/index.html";

    }

   var isFile = false;

   //判斷訪問的地址文件是否存在

   var bol = fs.existsSync("www"+url);

   if(bol){

       console.log("www"+url)

       var stat = fs.lstatSync("www"+url);

       var isFile = stat.isFile()

    }

   if(isFile){

       // var rs = fs.createReadStream("www"+url);

       // rs.pipe(res);

       var con = fs.readFileSync("www"+url);

       res.end(con);

   }else{

       res.writeHead(404,{"Content-type":"text/html;charset=utf-8"})

       res.end("沒有找到該頁面");

 

    }

 

});

server.listen(8080,function(){

   console.log('開啟成功:http://localhost:8080')

});

 

更多模塊請訪問nodejs手冊http://nodejs.cn/


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泗洪县| 融水| 台州市| 东兴市| 綦江县| 新津县| 水富县| 清新县| 自治县| 宣武区| 黔南| 石嘴山市| 久治县| 霍林郭勒市| 西畴县| 吐鲁番市| 柘荣县| 西华县| 靖江市| 康定县| 绵竹市| 兴安盟| 古蔺县| 邳州市| 揭阳市| 潼南县| 辽宁省| 岳阳市| 墨玉县| 建宁县| 浙江省| 安康市| 左贡县| 玉树县| 读书| 马边| 江孜县| 湘潭市| 定州市| 防城港市| 葫芦岛市|