九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Node.js基礎(chǔ)入門(mén)第八天

經(jīng)過(guò)前面七天的學(xué)習(xí),對(duì)Node.js開(kāi)發(fā)已經(jīng)有了一個(gè)初步的認(rèn)識(shí),今天繼續(xù)學(xué)習(xí)Node.js在web開(kāi)發(fā)參數(shù)傳遞相關(guān)內(nèi)容,僅供學(xué)習(xí)分享使用,如有不足之處,還請(qǐng)指正。

參數(shù)傳遞方式


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

  1. GET方式:通過(guò)地址欄鍵=值的方式進(jìn)行傳遞。

  2. POST方式:通過(guò)表單的方式傳遞請(qǐng)求數(shù)據(jù)。

GET方式


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

//1.引入http模塊var http  = require('http');//2.創(chuàng)建服務(wù)var server = http.createServer();//3. 監(jiān)聽(tīng)請(qǐng)求事件,當(dāng)有請(qǐng)求時(shí),觸發(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>請(qǐng)求的參數(shù)為:</h3>");        for(var index in paramArray){            res.write(paramArray[index])            res.write("<br />");        }    }    res.end();});
//4. 監(jiān)聽(tīng)8080端口server.listen(8080,function(){ console.log("server is running");});

運(yùn)行示例,在瀏覽器中打開(kāi),如下所示:

POST方式


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

首先創(chuàng)建一個(gè)reg.html靜態(tài)html頁(yè)面,然后提交數(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)聽(tīng)請(qǐng)求事件,當(dāng)有請(qǐng)求時(shí),觸發(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"){        //從請(qǐng)求主體中獲取POST方式傳輸?shù)臄?shù)據(jù)        var params='';        req.on('data',function(data){            params += data.toString();        });        //監(jiān)聽(tīng)結(jié)束事件        req.on('end',function(){            res.write("<h3>后臺(tái)已經(jīng)收到請(qǐ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)聽(tīng)8080端口server.listen(8080,function(){ console.log("server is running");});

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

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

動(dòng)態(tài)網(wǎng)頁(yè)


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

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

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

然后在Node.js后端程序中,動(dòng)態(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)聽(tīng)請(qǐng)求事件,當(dāng)有請(qǐng)求時(shí),觸發(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)聽(tīng)8080端口server.listen(8080,function(){ console.log("server is running");});
function render(html,name,value){ return html.replace(name,value);}

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

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

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

備注


梁州故人【作者】韋應(yīng)物 【朝代】唐

江漢曾為客,相逢每醉還。
浮云一別后,流水十年間。
歡笑情如舊,蕭疏鬢已斑。
何因不歸去,淮上有秋山。

學(xué)習(xí)編程,從關(guān)注【老碼識(shí)途】開(kāi)始?。?!

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
nodejs入門(mén)
微信公眾賬號(hào)添加關(guān)注按鈕和分享到朋友圈按鈕.
node.js 接收get請(qǐng)求
Angular 應(yīng)用里 server.ts 文件的 APP_BASE_HREF token 的用法?
NodeJS學(xué)習(xí)筆記(一)
Node.js路由改造
更多類(lèi)似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服