Nodejs教程08:同时处理GET/POST请求
生活随笔
收集整理的這篇文章主要介紹了
Nodejs教程08:同时处理GET/POST请求
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
示例代碼請(qǐng)?jiān)L問(wèn)我的GitHub: github.com/chencl1986/…
同時(shí)處理GET/POST請(qǐng)求
通常在開(kāi)發(fā)過(guò)程中,同一臺(tái)服務(wù)器需要接收多種類(lèi)型的請(qǐng)求,并區(qū)分不同接口,向客戶端返回?cái)?shù)據(jù)。
最常用的方式,就是對(duì)請(qǐng)求的方法、url進(jìn)行區(qū)分判斷,獲取到每個(gè)請(qǐng)求的數(shù)據(jù)后,統(tǒng)一由一個(gè)回調(diào)函數(shù)進(jìn)行處理。
如下示例代碼,可以在/lesson08/form_get.html和/lesson08/form_post.html中,通過(guò)提交表單查看效果。
示例代碼:/lesson08/server.js
const http = require('http') const url = require('url') const querystring = require('querystring')const server = http.createServer((req, res) => {// 定義公共變量,存儲(chǔ)請(qǐng)求方法、路徑、數(shù)據(jù)const method = req.methodlet path = ''let get = {}let post = {}// 判斷請(qǐng)求方法為GET還是POST,區(qū)分處理數(shù)據(jù)if (method === 'GET') {// 使用url.parse解析get數(shù)據(jù)const { pathname, query } = url.parse(req.url, true)path = pathnameget = querycomplete()} else if (method === 'POST') {path = req.urllet arr = []req.on('data', (buffer) => {// 獲取POST請(qǐng)求的Buffer數(shù)據(jù)arr.push(buffer)})req.on('end', () => {// 將Buffer數(shù)據(jù)合并let buffer = Buffer.concat(arr)// 處理接收到的POST數(shù)據(jù)post = querystring.parse(buffer.toString())complete()})}// 在回調(diào)函數(shù)中統(tǒng)一處理解析后的數(shù)據(jù)function complete() {console.log(method, path, get, post)} })server.listen(8080) 復(fù)制代碼總結(jié)
以上是生活随笔為你收集整理的Nodejs教程08:同时处理GET/POST请求的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 梦到洗好多衣服是什么意思
- 下一篇: 梦到自己被打流血了怎么回事