文章涉及到的API:req.params
,res.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
,比方null
,undefined
。(雖然這些都是技術上無效的JSON
)。
4. app.param()
這個API有兩個參數,(name, callback)
,name
是被監聽參數的字段名, callback
則是對監聽效果的回調函數。callback
有四個參數,分別是 request
、response
、next
、name
,request
做要求處置懲罰,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);
}
})