如何在express.js http get请求中提取params对象的值

时间:2017-04-15 15:42:58

标签: angularjs http express meanjs

所以我在角度js的工厂服务中提出了一个get请求

.factory('FollowUpTodaySvc', function($q, _, $http, currentUrl, TodayDateSvc) {
        var deferred_FTS = $q.defer();
    var getFollowUp = function(d) {
    // var getFollowUp = function(ob) {
var ob = {};
ob.a = "a";
ob.b = "b";
var url = currentUrl+"/api/FollowUpSearch/"+ob;           

      $http.get(url)
            .success(function(jsonData_FTS) {
console.log('%c 518-S getFollowup json Data =', 'background: white; color: red',jsonData_FTS);
                deferred_FTS.resolve(jsonData_FTS);
            })
            .error(function(error_FTS) {

当此请求进入快速服务器时,我无法从params对象中提取值。

继承我的服务器代码。

exports.FollowUpSearch = function(req, res, next, id) {
console.log('224-psc FollowUpSearch-API  id = ', id);
console.log('397-psc FollowUpSearch-API  req.params = ', req.params);
console.log(chalk.green('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%:     ' + "&&&&&&&&&"));

继承人终端截图。



第二次尝试使用

发送数据
$http.get(url, obj)

这里的id未定义。

情景2。 在ng服务中:

 var  data = {usernameOrEmail: "some email ", password: "PAssword"};

         console.log('513-S---- inside FollowUpTodaySvc ');
           var url = currentUrl+"/api/FollowUpSearch/"+d;
           // var url = currentUrl+"/api/FollowUpSearch/"+d;           
        $http.get(url, data )
服务器上的

console.log('403-psc FollowUpSearch-API  req.params = ', req.params);
console.log('403-psc FollowUpSearch-API  req.body = ', req.body);

enter image description here

方案3.

将$ http从get更改为post解决它,我可以使用req.body对象获取值,但我的问题是如果我不想发布Post请求,我只想得到因为它可以被缓存。<登记/> 我如何发送数据后端?

方案4 - stringify

exports.Later_Today_P_prioritySearch = function(req, res, next, id) {

  console.log(chalk.white('354-PSC - - Environment:  inside  Later_Today_P_prioritySearch  '));

console.log(chalk.white('356-PSC - - req.body  ', req.body));
var stri_body = JSON.stringify(req.body)
console.log(chalk.white('358-PSC - - stri_body   ', stri_body));


console.log(chalk.white('356-PSC - - req.params  ', req.params));

var stringy = JSON.stringify(req.params)

console.log(chalk.white('356-PSC - - stringy   ', stringy));

console.log(chalk.white('356-PSC - - stringy Later_Today_P   ', stringy.Later_Today_P));

它很有趣它适用于req.params但不适用于req.body

继承角度服务

  var deferred_la_P = $q.defer();

    var getPriority = function(p) {
          url = currentUrl+"/api/Later_Today_P_prioritySearch/"+p;

      console.log('880-S  p =', p)

var data = { username : '$localStorage.username', email: '$localStorage.email' };

        $http.get(url, data)

enter image description here

场景:5(使用http.post进行stringify

与上面相同的代码。

$http.post(url, data)

enter image description here

方案6:

使用$ http发布所有strinfigy是不必要的

因为我可以使用以下方法访问该值。

console.log(chalk.white(&#39; 364-PSC - - req.body.username&#39;,req.body.username));

但问题仍然存在:如何通过http get请求发送数据对象。

2 个答案:

答案 0 :(得分:0)

您可以在日志声明中使用

console.log('224-psc FollowUpSearch-API  id = ',JSON.stringify(id));
console.log('397-psc FollowUpSearch-API  req.params = ', JSON.stringify(req.params));

您应该以这种方式获得该对象的更多信息,而不仅仅是类型。

答案 1 :(得分:0)

您的第一张图片显示您的request.params有某些内容。

无论如何the documentation$http.get的第二个参数是配置对象。配置对象现在可以拥有参数。所以你应该改变你的代码如下:

$http.get(url, {params:obj})