函数正在获取未定义的参数Node.js

时间:2016-04-24 15:02:18

标签: javascript node.js mongodb

我正在使用一个使用Mongo作为DB和node.js的应用程序。我创建了一个函数,用于接收名为 orderedBy 的参数,但是我的console.log会打印一个未定义的参数。为什么会这样?这是代码。

exports.showAll = function(orderedBy, callback){

var query = {orderedBy: orderedBy}
console.log("Orderer by ===== "+ orderedBy);

var array = models.Orden.find(query).lean().exec(function(err, orders) {
    if( orders.length > 0) {
        callback({'array' : orders});
        //callback({'array' : JSON.stringify(orders)});
    }
    else {
        callback({'error' : "You don't have any orders"});
    }
});}

在这里我称之为showAll

app.post('/api/showAll', function(req, res) {
      var orderedBy = req.body.orderedBy;
      ordenes.showAll(orderedBy, function(found){
           console.log(found);
           res.json(found);
      });
 });

基本上,我想要的是获取一个ID并显示该人有多少订单。但我的回答总是#34;你没有任何订单"主要是因为我的控制台日志,显示orderedBy未定义。

是的,我确保我发送了正确的ID,并使用Postman模拟它

2 个答案:

答案 0 :(得分:0)

您的req请求对象有两个名为

的属性
  • 正文:当您发送POST / PUT请求时,将由请求正文填充
  • 查询:当您发送请求时,(无论方法如何)将由queryString填充。例如http://localhost:3000?orderBy=AAAA

    在您的服务器端,您可以req.orderBy === 'AAAA'

答案 1 :(得分:0)

认为这是我的功能错了,但这是我的参数。我愚蠢地发送表格数据,而不是邮递员中的x-www-form-urlencoded。它永远不会被打破,谢谢。