在NODE中同时获取GET和POST请求

时间:2015-05-27 23:11:21

标签: javascript angularjs node.js mongodb express

我有一个搜索页面,我需要发送一个数组,告诉我用户正在寻找的内容如下:
{型号:'牛仔裤',颜色:'蓝色}

我应该有一个GET请求来接收数据库中的数据。

我可以同时同时收到Get和post请求吗? 你是否建议每个功能都有一个功能或一个功能?如果是后者那么如何在Express.js中的函数之间传递数据?

 app.route('/alls/:issuename')
    .get(alls.list)
    .post(alls.list2);

控制器

exports.list = function(req, res) {
    mongoose.model(var1).find({ color: var2 }).exec(function(err, alls){
        res.jsonp(alls);
    }); 
};

exports.list2 = function(req, res) {

    var var1 = req.body.Model;
    var var2 = req.body.Color;

};

这是我在$ Resource

中将参数传递给GET
angular.module('alls').factory('Alls', ['$resource', function($resource) {

return $resource('alls/:issuename', {issuename: '@issuename'},
    {   
        get:{ method: 'GET', isArray:true }

    });
}]);

如何传递数组?

2 个答案:

答案 0 :(得分:1)

我解决了这个问题

$ Resource

angular.module('alls').factory('Alls', ['$resource', function($resource) {

return $resource('alls/:issuename', {issuename: '@issuename'},
    {

        get:{ method: 'GET',
        query: {
            Model: '',
            Color: ''
        }, isArray:true }

    });
}]);

然后我在控制器中收到这些数据

 exports.list = function(req, res) {

    var var1 = req.query.Model;
    var var2 = req.query.Color;

    mongoose.model(var1).find({ color: var2 }).exec(function(err, alls) {
        res.jsonp(alls);
    });



};

注意:$ resource中的数组名称可以是查询或其他任何内容但是您只能通过控制器中的 req.query 接收传递的数据。

在路线第一部分我只需要获取和发布是多余的

希望它有助于其他人!

答案 1 :(得分:0)

http://expressjs.com/guide/routing.html

有一种特殊的路由方法app.all(),它不是从任何HTTP方法派生的。它用于在所有请求方法的路径中加载中间件。

在以下示例中,无论是使用GET,POST,PUT,DELETE还是http module支持的任何其他HTTP请求方法,都将对“/ secret”请求执行处理程序。

app.all('/secret', function (req, res, next) {
  console.log('Accessing the secret section ...');
  next(); // pass control to the next handler
});