如何将我的react组件中的值传递给我的快速API调用?

时间:2016-09-06 00:26:15

标签: node.js express reactjs

我不确定我该怎么问这个问题。我在客户端使用React / Redux / d3,在服务器端使用Node / express进行应用程序(正确的是这个描述似乎不对)。我想允许用户使用例如下拉菜单更新API客户端。我不是在这里寻找特定的代码,而是更普遍的模式。

例如,此处是我的Google Analytics分析API调用的一部分:

// query the data
var queryData = function(req, res) {
  // authorize the client (see code above)
  authorize(function() {
    // do the actual call to the google api
    analytics.data.ga.get({
      'auth': jwtClient,
      'ids': VIEW_ID,
      'metrics': 'ga:uniquePageviews',
      'dimensions': 'ga:pagePath',
      'start-date': '30daysAgo',
      'end-date': 'yesterday',
      'sort': '-ga:uniquePageviews',
      'max-results': 10,
    }, function (err, response) {
      if (err) {
        console.log(err);
        return;
      }
      // send the data to the client (i.e. browser)
      res.send(response);
    }); 
  });
}

module.exports = {
    queryData
};

按照上面的代码,我想提供一个包含各种'start-date'的下拉菜单。我的问题是否清楚?我该怎么做呢 ?

1 个答案:

答案 0 :(得分:1)

您的expressjs函数可以从请求对象获取请求参数" req"

function MyCtrl($scope) {
    $scope.classList=[{
        label: 'Class1', value: false
    }, {
        label: 'Class2', value: false
    }, {
        label: 'Class3', value: false
    }, {
        label: 'Class4', value: false
    }];

    $scope.getSubscribedClassList = function() {
      $scope.classList.forEach(function(obj) {
          obj.value = $scope.selectedClasses;
      });
    }
}

因此,您需要请求您的expressjs端点,其参数需要使代码变为变量并使用动态值。

 req.params.startDate