1. 程式人生 > >nodejs(7)練習 http 和 express 創建簡單的服務器

nodejs(7)練習 http 和 express 創建簡單的服務器

客戶端 div 簡單的 tex require expr 字符串 創建 nbsp

http

const http = require(‘http‘)

// 創建服務器
const server = http.createServer()

// 綁定事件,監聽客戶端的請求
server.on(‘request‘, (req, res) => {
    // 寫入響應頭,防止中文亂碼
    res.writeHeader(200, {
      ‘Content-Type‘: ‘text/html; charset=utf-8‘
    })
  res.end(‘你好 http 服務器!‘)
})

server.listen(3333, () => {
  console.log(
‘http server running at http://127.0.0.1:3333‘) })

express

const express = require(‘express‘)

// 創建服務器
const app = express()

// 監聽客戶端的請求
// 只有客戶端的請求類型是 get,並且 請求地址是 / 根路徑的時候,
// 才會調用 後面指定的處理函數
app.get(‘/‘, (req, res) => {
  // express 中,封裝了更好用的 res.send 方法
  res.send(‘你好,express 服務器!‘)
})

// 監聽客戶端的post請求,並且請求的地址是 /adduser 的時候,
// 才會調用後面指定的處理函數 app.post(‘/adduser‘, (req, res) => { res.send(‘服務器處理成功!‘) }) // 啟動服務器 app.listen(4444, () => { console.log(‘express server running at http://127.0.0.1:4444‘) })

在express框架中獲取客戶端提交的表單數據

const express = require(‘express‘)
const qs = require(‘querystring‘)

const app = express()

// 監聽客戶端的 post 請求,且請求地址為 /adduser 的時候,會調用指定的處理函數 app.post(‘/adduser‘, (req, res) => { // 註意:客戶端提交到服務器的數據,都保存到了 req 請求對象中 // 只要客戶端向服務器通過post方式,提交了表單,那麽 就會觸發 req 的 data 事件 // 只要安裝一個 第三方的npm包,名字叫做 body-parser, 並進行簡單配置,就能夠直接使用 req.body獲取到表單數據了 let str = ‘‘ req.on(‘data‘, chunk => { // 把每次得到的分片數據,拼接到 str 字符串中 // 如果 字符串 和 Buffer 數據進行拼接,得到結果,是字符串 str += chunk // 思考:只要觸發了 data,就證明有數據發送到服務器了,但是,什麽時候,就證明數據已經發送和接收完畢了呢??? }) // 通過監聽 req 的 end 事件,就能夠直到數據已經發送完畢了,服務器也已經接收到了完整的數據! req.on(‘end‘, () => { // console.log(str) // 對數據進行 URL 解碼操作 // const strDecode = decodeURI(str) // console.log(strDecode) const result = qs.parse(str) // 使用 express 的 send 方法,向客戶端發送 對象 res.send(result) }) // res.send(‘添加用戶成功!‘) }) app.listen(4444, () => { console.log(‘express server running at http://127.0.0.1:4444‘) })

使用body-parser包解析表單數據

安包:npm install body-parser -S

const express = require(‘express‘)
// 1. 導入 解析表單數據的包
const bodyParser = require(‘body-parser‘)

const app = express()
// 2. 配置一下
app.use(bodyParser.urlencoded({ extended: false }))

app.post(‘/adduser‘, (req, res) => {
  console.log(req.body)
  res.send(‘ok‘)
})

app.listen(4444, () => {
  console.log(‘啟動成功!‘)
}) 

nodejs(7)練習 http 和 express 創建簡單的服務器