最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js中參數(shù)傳遞的兩種方式詳解

 更新時間:2022年04月14日 14:16:10   作者:小六公子  
這篇文章主要為大家介紹了Node.js中參數(shù)傳遞的兩種方式:GET方式和POST方式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下

參數(shù)傳遞方式

在Node.js中,參數(shù)傳遞常見的共兩種方式:

  • GET方式:通過地址欄鍵=值的方式進(jìn)行傳遞。
  • POST方式:通過表單的方式傳遞請求數(shù)據(jù)。

GET方式

GET方式通常是在請求地址中以【?參數(shù)1=值1&參數(shù)2=值2】的格式進(jìn)行傳遞,在Node.js中可以通過獲取url然后進(jìn)行獲取參數(shù),如下所示:

//1.引入http模塊
var http  = require('http');
//2.創(chuàng)建服務(wù)
var server = http.createServer();
//3. 監(jiān)聽請求事件,當(dāng)有請求時,觸發(fā)回調(diào)函數(shù)
server.on('request',function(req,res){
    res.writeHead(200,{"content-type":"text/html;charset=utf-8"});
    var url = req.url;
    if(url.indexOf('?')>0){
        params = url.split('?')[1];
        paramArray = params.split('&');
        res.write("<h3>請求的參數(shù)為:</h3>");
        for(var index in paramArray){
            res.write(paramArray[index])
            res.write("<br />");
        }
    }
    res.end();
});

//4. 監(jiān)聽8080端口
server.listen(8080,function(){
    console.log("server is running");
});

運行示例,在瀏覽器中打開,如下所示:

POST方式

目前一般采用form表單的方式傳遞POST數(shù)據(jù)。在Node.js中,POST傳遞的數(shù)據(jù)在請求體中。

首先創(chuàng)建一個reg.html靜態(tài)html頁面,然后提交數(shù)據(jù)到action.html,具體如下所示:

//1.引入http模塊
var http  = require('http');
var fs = require('fs');
var path = require('path');
//2.創(chuàng)建服務(wù)
var server = http.createServer();
var extnames = {".html":"text/html",".css":"text/css",".png":"image/png"};
//3. 監(jiān)聽請求事件,當(dāng)有請求時,觸發(fā)回調(diào)函數(shù)
server.on('request',function(req,res){
    var url=req.url;
    if(url==="/"){
        url="/index.html";
    }
    var localPath = './www'+url;
    var extname = path.extname(localPath);
    res.writeHead(200,{"content-type":""+extnames[extname]+";charset=utf-8"});
    if(url==="/action.html"){
        //從請求主體中獲取POST方式傳輸?shù)臄?shù)據(jù)
        var params='';
        req.on('data',function(data){
            params += data.toString();
        });
        //監(jiān)聽結(jié)束事件
        req.on('end',function(){
            res.write("<h3>后臺已經(jīng)收到請求:</h3>");
            res.write(params);
            res.end();

        });
        return;
    }

    console.log(localPath);
    if(extname===".ico"){
        res.end();
    }else{
        fs.readFile(localPath,function(err,data){
            res.write(data);
            res.end();
        });
    }
});

//4. 監(jiān)聽8080端口
server.listen(8080,function(){
    console.log("server is running");
});

運行服務(wù),然后在瀏覽器輸入網(wǎng)址,如下所示:

注意:可以看出,GET方式和POST方式的參數(shù)結(jié)構(gòu)都是一樣的,只是GET通過URL,POST通過請求主體。

動態(tài)網(wǎng)頁

在之前的示例中,所有的html頁面都是靜態(tài)頁面,不會隨著用戶請求的變化而變化。那如何動態(tài)的變更網(wǎng)頁呢?答案是采用模板。

首先創(chuàng)建一個html頁面,并在頁面中定義一個變量。如下所示:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>這是首頁</title>
        <link type="text/css" href="css/index.css" rel="external nofollow"  />
    </head>
    <body>
        <h3>這是首頁</h3>
        <h3>你的訪問IP為:</h3>
        <h3><%=ipAddr%></h3>
    </body>
</html>

然后在Node.js后端程序中,動態(tài)獲取變量的值,并進(jìn)行替換,如下所示:

var http  = require('http');
var fs = require('fs');
var path = require('path');
//2.創(chuàng)建服務(wù)
var server = http.createServer();
var extnames = {".html":"text/html",".css":"text/css",".png":"image/png"};
//3. 監(jiān)聽請求事件,當(dāng)有請求時,觸發(fā)回調(diào)函數(shù)
server.on('request',function(req,res){
    var url=req.url;
    if(url==="/"){
        url="/index.html";
    }
    var localPath = './www'+url;
    var extname = path.extname(localPath);
    res.writeHead(200,{"content-type":""+extnames[extname]+";charset=utf-8"});
    console.log(localPath);
    if(extname===".ico"){
        res.end();
    }else{
        fs.readFile(localPath,function(err,data){
            var ip = req.socket.remoteAddress;
            var content  = render(data.toString(),'<%=ipAddr%>',ip);
            res.write(content);
            res.end();
        });
    }
});

//4. 監(jiān)聽8080端口
server.listen(8080,function(){
    console.log("server is running");
});

function render(html,name,value){
    return html.replace(name,value);
}

運行示例,在瀏覽器中輸入http://http://127.0.0.1:8080/,如下所示:

注意:IP為客戶端IP,隨著訪問的客戶端電腦而改變。

以上示例都是Node.js的原生開發(fā)方式,存在諸多不便,后面將通過引入框架來提高開發(fā)的效率。

到此這篇關(guān)于Node.js中參數(shù)傳遞的兩種方式詳解的文章就介紹到這了,更多相關(guān)Node.js參數(shù)傳遞方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何解決安裝websocket還是報錯Cannot find module'ws'問題

    如何解決安裝websocket還是報錯Cannot find module'ws&apos

    這篇文章主要介紹了如何解決安裝websocket還是報Cannot find module'ws'問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • node.js中的fs.appendFileSync方法使用說明

    node.js中的fs.appendFileSync方法使用說明

    這篇文章主要介紹了node.js中的fs.appendFileSync方法使用說明,本文介紹了fs.appendFileSync方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • NestJS系列核心概念之Module模塊示例詳解

    NestJS系列核心概念之Module模塊示例詳解

    這篇文章主要為大家介紹了NestJS系列核心概念之Module模塊示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • nodejs管理工具nvm安裝過程詳解

    nodejs管理工具nvm安裝過程詳解

    Node版本管理器--nvm,可以運行在多種操作系統(tǒng)上。nvm for windows 是使用go語言編寫的軟件。 我電腦使用的是Windows操作系統(tǒng),所以我要記錄下在此操作系統(tǒng)上nvm的安裝和使用
    2021-06-06
  • 詳解如何使用Node.js連接數(shù)據(jù)庫ORM

    詳解如何使用Node.js連接數(shù)據(jù)庫ORM

    這篇文章主要為大家介紹了詳解如何使用Node.js連接數(shù)據(jù)庫ORM示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • gyp?ERR!報錯問題解決辦法

    gyp?ERR!報錯問題解決辦法

    這篇文章主要給大家介紹了關(guān)于gyp?ERR!報錯問題的解決辦法,文中將解決的辦法介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-01-01
  • Nodejs處理異常操作示例

    Nodejs處理異常操作示例

    這篇文章主要介紹了Nodejs處理異常操作,結(jié)合實例形式分析了nodejs針對異常的捕獲與處理相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12
  • Node.js編寫組件的三種實現(xiàn)方式

    Node.js編寫組件的三種實現(xiàn)方式

    這篇文章主要介紹了Node.js編寫組件的三種實現(xiàn)方式,包括純js實現(xiàn)、v8 API實現(xiàn)(同步&異步)、借助swig框架實現(xiàn),感興趣的小伙伴們可以參考一下
    2016-02-02
  • 詳解Node.js異步處理的各種寫法

    詳解Node.js異步處理的各種寫法

    這篇文章主要介紹了Node.js異步處理的各種寫法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • 詳解Node.js 命令行程序開發(fā)教程

    詳解Node.js 命令行程序開發(fā)教程

    一種編程語言是否易用,很大程度上,取決于開發(fā)命令行程序的能力。本篇文章主要介紹了Node.js 命令行程序開發(fā)教程,有興趣的可以了解一下
    2017-06-06

最新評論

绥芬河市| 东安县| 奉新县| 乡城县| 古丈县| 武宣县| 吴旗县| 崇文区| 抚州市| 宣汉县| 绥中县| 凤阳县| 四会市| 嘉定区| 手游| 屯昌县| 巢湖市| 招远市| 孝感市| 西乌珠穆沁旗| 汝南县| 双牌县| 连江县| 城口县| 当涂县| 沅陵县| 门源| 台南县| 昭觉县| 闽清县| 视频| 神池县| 宁德市| 梅州市| 循化| 大名县| 九寨沟县| 杭锦旗| 偃师市| 阜城县| 准格尔旗|