Express: Demonstration

 

Express application generator (expressjs.com)

import express from 'express'
import bodyParser from 'body-parser'


const app = express()


app.use(bodyParser.raw({
  inflate: true,
  limit: Infinity,
  type: '*/*'
}))

/* 会被raw覆盖, Buffer必须转为String, GET方法也会解析request body */

app.use(bodyParser.text({
  defaultCharset: 'UTF-8',
  inflate: true,
  limit: Infinity,
  type: '*/*'
}))

app.use('/redirect', (req, res) => {
  console.log(req.params)
  console.log(req.query)
  res.location('http://baidu.com')
  res.statusCode = 307
  res.end('redirect')
})

app.use('/**', (req, res, next) => {
  console.log('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
  console.log('Buffer Body')
  console.log(req.body)  // Buffer
  console.log('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
  const datum = req.body.toString('UTF-8')
  console.log('String Body')
  console.log(datum)  // String
  console.log('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
  console.log('Headers')
  console.log(req.headers)
  console.log('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
  /**
   * localhost:2020/aa/bb?name=啊&age=55#hash
   * req.url:         /?name=%E5%95%8A&age=55
   * req.baseUrl:     /aa/bb
   * req.originalUrl: /aa/bb?name=%E5%95%8A&age=55
   * req.path:        /
   */
  console.log('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
  console.log(`req.url: ${req.url}`)
  console.log('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
  console.log(`req.baseUrl: ${req.baseUrl}`)
  console.log('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
  console.log(`req.originalUrl: ${req.originalUrl}`)
  console.log('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
  console.log(`req.path: ${req.path}`)
  console.log('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
  res.send(decodeURIComponent(req.originalUrl))
  // res.end(req.originalUrl)
})



const PORT = process.env.PORT || 2020

app.listen(PORT, () => {
  console.log(`Express listen on ${PORT}`)
})

 

Package:

tar cvzf project.tar --exclude=node_modules project

 

posted @ 2022-05-13 14:25  ascertain  阅读(21)  评论(0编辑  收藏  举报