node-express處理表單的接口


寫一個小接口,用postman測試接口是否可行😝😝

import express from 'express'
import config from './config'
import router from './router'
import queryString from 'querystring'

const app = express()

app.use('/node_modules', express.static(config.node_modules_path))
app.use('/public', express.static(config.public_path))

// 解析處理表單 POST 請求體中間件
app.use((req, res, next) => {
  // 由於表單 POST 請求可能會攜帶大量的數據,所以在進行請求提價的時候會分為多次提交
  // 具體分為多少次進行提交不一定,取決於數據量的大小
  // 在 Node 中,對於處理這種不確定的數據,使用事件的形式處理
  // 這里可以通過監聽 req 對象的 data 事件,然后通過對應的回調處理函數中的參數 chunk 拿到每一次接收到的數據
  //        data 事件觸發多少次,不一定
  // 當數據接收完畢之后,會自動觸發 req 對象的 end 事件,然后就可以在 end 事件中使用接收到的表單 POST 請求體
  let data = ''
  req.on('data', chunk => {
    data += chunk
  })
  req.on('end', () => {
    // 手動給 req 對象掛載一個 body 屬性,值就是當前表單 POST 請求體對象
    // 在后續的處理中間件中,就可以直接使用 req.body 了
    // 因為在同一個請求中,流通的都是同一個 req 和 res 對象
    req.body = queryString.parse(data)
    next()
  })
})

// 掛載路由容器(路由容器中組織了網站功能處理路由中間件)
app.use(router)

app.listen(3000, () => {
  console.log('server is running at port 3000...')
})

import express from 'express'

// 創建一個路由容器,將所有的路由中間件掛載給路由容器
const router = express.Router()

router.get('/', (req, res, next) => {
  res.render('index.html')
})

router.post('/advert/add', (req, res, next) => {
  // 接口客戶端提交的數據

  console.log(req.body)
})

// 通過 export default 暴露的接口成員不能定義的同時直接暴露
// 最好先定義,再暴露
// export default 可以直接暴露字面量 {} 123
export default router


免責聲明!

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



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