2016-10-03 74 views
0

從快遞應用請看下面的代碼:什麼事件/動作/方法觸發http Post請求?

var express = require('express'); 
 
var router = express.Router(); 
 
var standupCtrl = require('../controllers/standup.server.controller'); 
 

 
/* GET home page. */ 
 
router.get('/', function(req, res) { 
 
    return standupCtrl.list(req, res); 
 
}); 
 

 
/* POST filter by member name - home page. */ 
 
router.post('/', function(req, res) { 
 
    return standupCtrl.filterByMember(req, res); 
 
}); 
 

 
// ............ more code here 
 

 
module.exports = router;

exports.list = function(req, res) { 
 
    var query = Standup.find(); 
 

 
    query.sort({ createdOn: 'desc'}).limit(12).exec(function(err, results){ 
 
      res.render('index', {title: 'Standup - List', notes: results}); 
 
     }); 
 

 
}; 
 

 
exports.filterByMember = function(req, res) { 
 
    var query = Standup.find(); 
 
    var filter = req.body.memberName; 
 

 
    query.sort({ createdOn: 'desc' }); 
 

 
    if (filter.length > 0) 
 
    { 
 
     query.where({ memberName: filter}) 
 
    } 
 

 
    query.exec(function(err, results) { 
 
     res.render('index', { title: 'Standup - List', notes: results }); 
 
    }); 
 
};

我知道,提交形式時,你可以指定一個

方法= GET/POST

對於此方案(其中已指定任何這樣),如何在服務器知道哪個觸發(POST或GET)時用戶導航到「/」(例如主頁)?

更一般地,我的問題是:

什麼事件觸發後/獲取動作(如果沒有明確規定)?

:提前(PS我知道打字在瀏覽器的地址欄中任何觸發GET請求)

非常感謝!

回答

0

如果您沒有另行指定,那麼HTTP GET幾乎是默認設置。

大多數POST是表單提交或通過AJAX顯式調用或作爲Web服務調用(如來自其他服務器的RPC)的結果。您可以使用捲曲等程序來手動發送POST請求,但這又很少見。在我看到的每個工具包中,默認情況下都是GET。

並且很少(很),你可能會發現一些RPC提供者(如IoT或其他嵌入式設備)只會說POST(以節省代碼空間)。

+0

謝謝你,BJ,但你能否指點我一些資源,我可以在這裏瞭解更多。不用說,我嘗試了很長時間沒有運氣的Google搜索。 – KHAN

+0

@KHAN - 還有什麼可說的? – Quentin

+0

BJ &&昆汀 - 抱歉的人,但我在網頁開發中如此落後,甚至在閱讀了幾次的答案後,我沒有得到它。現在**更多的'手術解剖'和'片段分析'**我想我是。最重要的短語必須是「..通過AJAX顯式調用或作爲Web服務調用..」。 – KHAN