Node學習筆記 函數自調用和crud增刪改查

處理 post 響應請求

在處理 get 請求方式上,express 可使用 req.query 得到請求體數據,可是在 post 請求方式 express 並無提供得到對應請求體的方法javascript

若須要使用 post 處理響應請求,須要利用第三方組件 body-parserhtml

安裝

npm install --save body-parser
// 簡寫 npm i -S body-parser
複製代碼

配置

// 對組件進行配置
app.use(bodyParser.urlencoded({
  extended: false
}))
app.use(bodyParser.json())
複製代碼

使用

// html
<form action="接口地址" method="post">表單內容</form> // 將表單提交方式改成 post

// js
var bodyParser = require('body-parser') // 引入組件
app.use(bodyParser.urlencoded({ // 對組件進行配置
  extended: false
}))
app.use(bodyParser.json())
app.post('/post', (req, res) => {
    // post 請求體
})
複製代碼

綜上所述,咱們就能夠利用 express、express-template、nodemon 優化 評論提交java


優化模擬 Apache 目錄展現

引入所需組件

var express = require('express') // 引入 express 組件
app.engine('html', require('express-art-template')) // 引入 express-art-template

var bodyParser = require('body-parser') // 引入 post-parser
app.use(bodyParser.urlencoded({ // 配置 body-parper
  extended: false
}))
app.use(bodyParser.json())
複製代碼

建立路由

var app = express() // 初始化 express
app.use('/public', express.static('./public')) // 開放 public 靜態文件目錄
app.get('/', (req, res) => {}) // 渲染首頁
app.get('/post', (req, res) => {}) // 渲染評論頁
app.listen(2828, () => { // 綁定 2828 端口
  console.log('服務器運行了')
})
複製代碼

使用 express 的方便之處,能夠快速的將全部路由寫出來,彼此平行互不干擾node

處理 Post 請求

app.post('/post', (req, res) => {})
複製代碼

最後加入 express-art-template 後核心模塊 httpfsurl 均可以省略了git


最終的所有代碼以下:github

依舊使用《Node學習筆記 結合核心模塊url實現評論提交 》中的 index.htmlcomment.html 頁面mongodb

因爲本實例須要 post 提交方式,因此須要修改 comment.html 中表單提交方式數據庫

<form action="/post" method="post">
複製代碼
var comments = [ // 原始數據
  {
    name: '張三',
    message: '今每天氣不錯!',
    dateTime: '2015-10-16'
  }
]

/* 組件引入、配置 start */
var express = require('express') // 引入 express 組件
app.engine('html', require('express-art-template')) // 引入 express-art-template

var bodyParser = require('body-parser') // 引入 post-parser
app.use(bodyParser.urlencoded({ // 配置 body-parper
  extended: false
}))
app.use(bodyParser.json())
/* 組件引入、配置 end */

var app = express() // 初始化 express

/* 路由 start */
app.use('/public', express.static('./public')) // 開放 public 靜態文件目錄
app.get('/', (req, res) => { // 渲染首頁
    res.render('index.html', { // 將原始數據 comments 渲染到靜態文件 index.html 中
        comments: comments
      })
})
app.get('/post', (req, res) => { // 渲染 comment.html 評論頁
    res.render('post.html')
})
app.post('/post', (req, res) => { // 處理表單 post 提交請求
    // 將表單數據經過 post 提交方式提交
	comments.push({ // 經過 req.body 獲取請求體後,將數據更新至原始數據 comments
    	name: req.body.name,
    	message: req.body.message
	})
	res.redirect('/') // 頁面重定向
})
app.listen(2828, () => { // 綁定 2828 端口
  console.log('服務器運行了')
})
/* 路由 end */
複製代碼

到此爲止代碼優化完畢,此時可使用 fs 方法將數據讀寫作到永久保存,可是這種作法與實際工做不符14nodejs(7天) 後期的課程中會介紹 mongodb 數據庫的使用,咱們能夠經過數據庫實現數據的永久保存express


文章已同步個人我的博客:《Node學習筆記 poast、express實現評論提交npm


相關文章:


資料參考:

本篇文章由一文多發平臺ArtiPub自動發佈

相關文章
相關標籤/搜索