#初識Express# Express 框架處理前端請求(/:id)

文章涉及到的API:req.paramsres.json()app.get(),app.post(),app.param()ajax

API講解

1. app.get()app.post()express

配置客戶端路由(請求地址)。json

app.post('/get_json/:id', function (req, res) {
  // 響應塊代碼
})

這裏配置了一個POST請求的地址。將app.post()改爲app.get()也是能夠的,只是請求類型會變成get數組

2. req.paramsapp

一個對象,其包含了一系列的屬性,這些屬性和在路由中命名的參數名是一一對應的。例如,若是你有/user/:name路由,name屬性可經過req.params.name的方式獲取到,這個對象默認值爲{}。函數

3. res.json()post

發送一個json的響應。這個方法和將一個對象或者一個數組做爲參數傳遞給res.send()方法的效果相同。不過,你能夠使用這個方法來轉換其餘的值到json,例如nullundefined。(雖然這些都是技術上無效的JSON)。ui

4. app.param()url

這個API有兩個參數,(name, callback),name是被監聽參數的字段名, callback則是對監聽結果的回調函數。callback有四個參數,分別是 requestresponsenextnamerequest作請求處理,response作響應處理,next執行正確參數時的函數操做,name是被監聽參數的值。code

app.param('id', function(req, res, next, id) {
    if (id == 3) {
        next() // 參數正確調用next函數
    } else { // 監聽參數不存在或者錯誤,給出錯誤響應
        console.log('Erro !!!');
        res.send('Erro !!!!');
    }
})

示例代碼

  • 服務端代碼
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
// 解析json格式的數據
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

// POST請求 返回JSON串數據
app.post('/get_json/:id', function (req, res) {
   console.log("接收到 POST 請求");
   var json = {
           'message': '歡迎訪問',
           'data': { 'a': 1, 'b': 2, 'c': 4, 'd': 3, 'e': 5 }
   }
   res.json(json);
})
// 處理不一樣參數的請求
app.param('id', function(req, res, next, id) {
    if (id == 3) {
        next() // 執行正常操做,返回JSON數據
    } else {
        console.log('Erro !!!');
        console.log(req.params);
        res.send('Erro !!!!');
    }
})
  • 客戶端請求
ajax({
    url: '/get_json/1',  // 傳 3 的時候,後臺纔會返回JSON數據
    type: 'POST',
    data: data,
    success: function(data){
        // console.log( JSON.parse(data) );
           console.log(data);
    }
})
相關文章
相關標籤/搜索