2023學(xué)年完整公開課版1NodejsGET和POST請(qǐng)求_第1頁
2023學(xué)年完整公開課版1NodejsGET和POST請(qǐng)求_第2頁
2023學(xué)年完整公開課版1NodejsGET和POST請(qǐng)求_第3頁
2023學(xué)年完整公開課版1NodejsGET和POST請(qǐng)求_第4頁
2023學(xué)年完整公開課版1NodejsGET和POST請(qǐng)求_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Node.jsGET和POST請(qǐng)求2知識(shí)目標(biāo)什么是Node.js

GET和POST請(qǐng)求?獲取GET請(qǐng)求內(nèi)容獲取POST請(qǐng)求內(nèi)容01能力目標(biāo)了解何為Node.jsGET和POST請(qǐng)求?了解如何獲取GET請(qǐng)求內(nèi)容了解如何獲取POST請(qǐng)求內(nèi)容02學(xué)習(xí)目標(biāo)3目錄01什么是Node.jsGET和POST請(qǐng)求?02獲取GET請(qǐng)求內(nèi)容03獲取POST請(qǐng)求內(nèi)容什么是Node.jsGET和POST請(qǐng)求?4在很多場(chǎng)景中,我們的服務(wù)器都需要跟用戶的瀏覽器打交道,如表單提交。表單提交到服務(wù)器一般都使用GET/POST請(qǐng)求。本章節(jié)我們將為大家介紹Node.jsGET/POST請(qǐng)求。獲取GET請(qǐng)求內(nèi)容5由于GET請(qǐng)求直接被嵌入在路徑中,URL是完整的請(qǐng)求路徑,包括了?后面的部分,因此你可以手動(dòng)解析后面的內(nèi)容作為GET請(qǐng)求的參數(shù)。node.js中url模塊中的parse函數(shù)提供了這個(gè)功能。實(shí)例varhttp=require('http');varurl=require('url');varutil=require('util');

http.createServer(function(req,res){res.writeHead(200,{'Content-Type':'text/plain;charset=utf-8'});res.end(util.inspect(url.parse(req.url,true)));}).listen(3000);在瀏覽器中訪問http://localhost:3000/user?name=菜鳥教程&url=然后查看返回結(jié)果:獲取GET請(qǐng)求內(nèi)容6獲取URL的參數(shù)我們可以使用url.parse方法來解析URL中的參數(shù),代碼如下:實(shí)例varhttp=require('http');varurl=require('url');varutil=require('util');

http.createServer(function(req,res){res.writeHead(200,{'Content-Type':'text/plain'});//解析url參數(shù)

varparams=url.parse(req.url,true).query;res.write("網(wǎng)站名:"+);res.write("\n");res.write("網(wǎng)站URL:"+params.url);res.end();}).listen(3000);在瀏覽器中訪問http://localhost:3000/user?name=百度一下&url=然后查看返回結(jié)果:獲取POST請(qǐng)求內(nèi)容7POST請(qǐng)求的內(nèi)容全部的都在請(qǐng)求體中,http.ServerRequest并沒有一個(gè)屬性內(nèi)容為請(qǐng)求體,原因是等待請(qǐng)求體傳輸可能是一件耗時(shí)的工作。比如上傳文件,而很多時(shí)候我們可能并不需要理會(huì)請(qǐng)求體的內(nèi)容,惡意的POST請(qǐng)求會(huì)大大消耗服務(wù)器的資源,所以node.js默認(rèn)是不會(huì)解析請(qǐng)求體的,當(dāng)你需要的時(shí)候,需要手動(dòng)來做?;菊Z法結(jié)構(gòu)說明varhttp=require('http');varquerystring=require('querystring');varutil=require('util');

http.createServer(function(req,res){//定義了一個(gè)post變量,用于暫存請(qǐng)求體的信息

varpost='';

//通過req的data事件監(jiān)聽函數(shù),每當(dāng)接受到請(qǐng)求體的數(shù)據(jù),就累加到post變量中

req.on('data',function(chunk){post+=chunk;});獲取POST請(qǐng)求內(nèi)容8

//在end事件觸發(fā)后,通過querystring.parse將post解析為真正的POST請(qǐng)求格式,然后向客戶端返回。

req.on('end',function(){post=querystring.parse(post);res.end(util.inspect(post));});}).listen(3000);以下實(shí)例表單通過POST提交并輸出數(shù)據(jù):實(shí)例varhttp=require('http');varquerystring=require('querystring');獲取POST請(qǐng)求內(nèi)容9varpostHTML='<html><head><metacharset="utf-8"><title>百度</title></head>'+'<body>'+'<formmethod="post">'+'網(wǎng)站名:<inputname="name"><br>'+'網(wǎng)站URL:<inputname="url"><br>'+'<inputtype="submit">'+'</form>'+'</body></html>';

http.createServer(function(req,res){varbody="";req.on('data',function(chunk){body+=chunk;});獲取POST請(qǐng)求內(nèi)容10req.on('end',function(){//解析參數(shù)

body=querystring.parse(body);//設(shè)置響應(yīng)頭部信息及編碼

res.writeHead(200,{'Content-Type':'text/html;charset=utf8'});

if(&&body.url){//輸出提交的數(shù)據(jù)

res.write("網(wǎng)站名:"+);res.write("<br>");

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論