#初識Express# Express 框架處置懲罰前端要求(/:id)

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

API解說

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

設置客戶端路由(要求地點)。

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

這裏設置了一個POST要求的地點。將app.post()改成app.get()也是能夠的,只是要求範例會變成get

2. req.params

一個對象,其包含了一系列的屬性,這些屬性和在路由中定名的參數名是一一對應的。比方,假如你有/user/:name路由,name屬性可通過req.params.name的體式格局獲取到,這個對象默認值為{}。

3. res.json()

發送一個json的相應。這個要領和將一個對象或許一個數組作為參數傳遞給res.send()要領的效果雷同。不過,你能夠運用這個要領來轉換其他的值到json,比方nullundefined。(雖然這些都是技術上無效的JSON)。

4. app.param()

這個API有兩個參數,(name, callback),name是被監聽參數的字段名, callback則是對監聽效果的回調函數。callback有四個參數,分別是 requestresponsenextnamerequest做要求處置懲罰,response做相應處置懲罰,next實行準確參數時的函數操縱,name是被監聽參數的值。

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);
    }
})
    原文作者:逸心丿
    原文地址: https://segmentfault.com/a/1190000015008648
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞