node.js中怎么利用express解析post請(qǐng)求,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
10年積累的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有馬村免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。1、www-form-urlencoded
這是http的post請(qǐng)求默認(rèn)的數(shù)據(jù)格式,需要body-parser中間件的支持
服務(wù)器端的demo:
var express = require('express'); var app = express(); var bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({ extended:true })); app.post('/urlencoded', function(req, res){ console.log(req.body); res.send(" post successfully!"); }); app.listen(3000);
可以用postman進(jìn)行測(cè)試,這里就不贅述。
2、form-data
這種方式一般用于數(shù)據(jù)上傳,需要中間件connect-multiparty的支持
服務(wù)器端的demo:
var multipart = require('connect-multiparty'); var multipartMiddleware = multipart(); app.post('/formdata',multipartMiddleware, function (req, res) { console.log(req.body); res.send("post successfully!"); });
3、application/json
body-parser中間件支持json解析, 添加中間件進(jìn)行解析即可
app.use(bodyParser.json());
4、text/xml
body-parser默認(rèn)不支持這種數(shù)據(jù)格式
解決方法:把請(qǐng)求體參數(shù)按照字符串讀取出來(lái),然后使用 xml2json 包把字符串解析成json對(duì)象,然后對(duì)json對(duì)象進(jìn)行操作,方便得多。
注意:我們還是要使用 body-parse 得到字符串,然后再轉(zhuǎn)化.
利用req上定義的事件 data 來(lái)獲取http請(qǐng)求流, end 事件結(jié)束請(qǐng)求流的處理.
利用 xml2json 把上面得到的請(qǐng)求參數(shù)流(我們直接轉(zhuǎn)化為字符串)轉(zhuǎn)化為 json 對(duì)象.
demo如下:
var express = require('express'); var bodyParser = require('body-parser'); var xml2json=require('xml2json'); var app = express(); app.use(bodyParser.urlencoded({ extended: true })); app.post('/xml', function (req, res) { req.rawBody = '';//添加接收變量 var json={}; req.setEncoding('utf8'); req.on('data', function(chunk) { req.rawBody += chunk; }); req.on('end', function() { json=xml2json.toJson(req.rawBody); res.send(JSON.stringify(json)); }); }); app.listen(3000);
看完上述內(nèi)容,你們掌握node.js中怎么利用express解析post請(qǐng)求的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。