NodeJS獲取GET和POST請求


使用NodeJS獲取GET請求,主要是通過使用NodeJS內置的querystring庫處理req.url中的查詢字符串來進行。

  1. 通過?req.url分解成為一個包含pathquery字符串的數組
  2. 通過querystring.parse()方法,對格式為key1=value1&key2=value2的查詢字符串進行解析,並將其轉換成為標准的JS對象
 
         
const http = require('http')
const querystring = require('querystring')

let app = http.createServer((req, res) => {
  let urlArray = req.url.split('?')
  req.query = {}
  if (urlArray && urlArray.length > 0) {
    if (urlArray[1]) {
      req.query = querystring.parse(urlArray[1])
    }
  }
  res.end(
    JSON.stringify(req.query)
  )
})

app.listen(8000, () => {
  console.log('running on 8000')
})

NodeJS獲取POST數據

NodeJS獲取POST數據,主要是通過響應reqdata事件和end事件來進行

  1. 通過req.on('data'),並傳入回調函數,響應數據上傳的事件,並對數據進行收集
  2. 通過req.on('end'),並傳入回調函數,響應數據上傳結束的事件,並判斷是否存在上傳數據。如果存在,就執行后面的邏輯。
    // NodeJS獲取POST請求
    const http = require('http')
    
    let app = http.createServer((req, res) => {
      let postData = ''
      
      req.on('data', chunk => {
        postData += chunk.toString()
      })
    
      req.on('end', () => {
        if (postData) {
          res.setHeader('Content-type', 'application/json')
          res.end(postData)
        }
        console.log(JSON.parse(postData))
      })
      
    })
    
    app.listen(8000, () => {
      console.log('running on 8000')
    })
    get和post合並
            const url = require('url');
            const http = require('http');
            const server = http.createServer((req, res) => {
            if (req.method === 'GET') {
            let urlObj = url.parse(req.url, true);
            res.end(JSON.stringify(urlObj.query))
            } else if (req.method === 'POST') {
            let postData = '';
            req.on('data', chunk => {
            postData += chunk;
            })
            req.on('end', () => {
            console.log(postData)
            })
            res.end(JSON.stringify({
            data: '請求成功',
            code: 0
            }))
            }
            })
            server.listen(3000, () => {
            console.log('監聽3000端⼝')
            console.log(1111)
            console.log(22)
            }

    https://www.jianshu.com/p/683894636e72


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM