2016-10-03 40 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