Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NodeJS:访问对象字段返回未定义的字段,即使字段存在_Javascript_Node.js - Fatal编程技术网

Javascript NodeJS:访问对象字段返回未定义的字段,即使字段存在

Javascript NodeJS:访问对象字段返回未定义的字段,即使字段存在,javascript,node.js,Javascript,Node.js,我试图将请求正文的数据字段作为此模板的库传递,但在传递body.data后,模板中会显示我的库参数未定义。正如您在上面所看到的,我随后记录了主体,然后是它的字段console.log(body)产生以下输出: ######################{\'err\':null、\'data\':{\'u id\':\'5d955d7431d34f862a0dbd60\,\' \“:null,\“caption\”:\“华盛顿特区海军造船厂发生一起疑似枪击案 这是一个持枪歹徒杀害12名警察的地

我试图将请求正文的数据字段作为此模板的库传递,但在传递
body.data
后,模板中会显示我的库参数未定义。正如您在上面所看到的,我随后记录了主体,然后是它的字段
console.log(body)
产生以下输出:

######################{\'err\':null、\'data\':{\'u id\':\'5d955d7431d34f862a0dbd60\,\'
\“:null,\“caption\”:\“华盛顿特区海军造船厂发生一起疑似枪击案
这是一个持枪歹徒杀害12名警察的地方
在经过调查搜查后,当局给出了“一切正常”。
\\\“\”,“标签”:[“dc\”,“navyyard\”,“shooting\”,“washington\”]…

我缩短了输出,但正如您所看到的,数据字段显然在
data.err
旁边。但是,当我运行
控制台.log(“###########BODY#JSON.stringify(BODY.data))
时,我返回了
###BODY###########未定义#
。有人能解释这种行为吗?

router.get('/:id', function(req, res, next){console.log(req.params.id)
  request(
    config.API_URL + "/v1/gallery/get?id=" + req.params.id, 
    function (err, response, body){
      console.log('###BODY###',JSON.stringify(body));
      console.log('###BODY###',JSON.stringify(body.data));
      res.render('gallery', { user: req.session.user, gallery: body.data, title: 'Gallery', purchased: req.session.user.outlet ? (req.session.user.outlet.purchased || []) : [], config: config });
    }
  );
});
请求(
config.API_URL+“/v1/gallery/get?id=“+req.params.id,
);
与:

请求({
url:config.API_url+“/v1/gallery/get?id=“+req.params.id,
json:true
}, );
这将指示
request
自动将响应正文解析为
json
(当然,假设您正在使用)。

替换此:

router.get('/:id', function(req, res, next){console.log(req.params.id)
  request(
    config.API_URL + "/v1/gallery/get?id=" + req.params.id, 
    function (err, response, body){
      console.log('###BODY###',JSON.stringify(body));
      console.log('###BODY###',JSON.stringify(body.data));
      res.render('gallery', { user: req.session.user, gallery: body.data, title: 'Gallery', purchased: req.session.user.outlet ? (req.session.user.outlet.purchased || []) : [], config: config });
    }
  );
});
请求(
config.API_URL+“/v1/gallery/get?id=“+req.params.id,
);
与:

请求({
url:config.API_url+“/v1/gallery/get?id=“+req.params.id,
json:true
}, );
这将指示
request
自动将响应正文解析为
json
(当然,假设您正在使用)。

替换此:

router.get('/:id', function(req, res, next){console.log(req.params.id)
  request(
    config.API_URL + "/v1/gallery/get?id=" + req.params.id, 
    function (err, response, body){
      console.log('###BODY###',JSON.stringify(body));
      console.log('###BODY###',JSON.stringify(body.data));
      res.render('gallery', { user: req.session.user, gallery: body.data, title: 'Gallery', purchased: req.session.user.outlet ? (req.session.user.outlet.purchased || []) : [], config: config });
    }
  );
});
请求(
config.API_URL+“/v1/gallery/get?id=“+req.params.id,
);
与:

请求({
url:config.API_url+“/v1/gallery/get?id=“+req.params.id,
json:true
}, );
这将指示
request
自动将响应正文解析为
json
(当然,假设您正在使用)。

替换此:

router.get('/:id', function(req, res, next){console.log(req.params.id)
  request(
    config.API_URL + "/v1/gallery/get?id=" + req.params.id, 
    function (err, response, body){
      console.log('###BODY###',JSON.stringify(body));
      console.log('###BODY###',JSON.stringify(body.data));
      res.render('gallery', { user: req.session.user, gallery: body.data, title: 'Gallery', purchased: req.session.user.outlet ? (req.session.user.outlet.purchased || []) : [], config: config });
    }
  );
});
请求(
config.API_URL+“/v1/gallery/get?id=“+req.params.id,
);
与:

请求({
url:config.API_url+“/v1/gallery/get?id=“+req.params.id,
json:true
}, );

这将指示
request
自动将响应正文解析为
json
(当然,假设您正在使用)。

正文是字符串吗?您可能需要执行
body=json.parse(body)
first。提示是,您得到的字符串化json是转义的。json不应该这样转义,因此,您可能会对其进行双重字符串化。您说得对,谢谢!我在复制和粘贴时没有注意,没有抓取json设置为的请求true@MikeC这当然是对的(响应是一个主体,而不是一个字符串)。我建议在
json.parse(主体)上使用
json:true
配置选项
但在这种情况下。这将确保如果响应无法解析为JSON,则该错误将传递给回调,而不是引发异常。
body
是字符串吗?您可能需要执行
body=JSON.parse(body)
first。提示是,您得到的字符串化json是转义的。json不应该这样转义,因此,您可能会对其进行双重字符串化。您说得对,谢谢!我在复制和粘贴时没有注意,没有抓取json设置为的请求true@MikeC这当然是对的(响应是一个主体,而不是一个字符串)。我建议在
json.parse(主体)上使用
json:true
配置选项
但在这种情况下。这将确保如果响应无法解析为JSON,则该错误将传递给回调,而不是引发异常。
body
是字符串吗?您可能需要执行
body=JSON.parse(body)
first。提示是,您得到的字符串化json是转义的。json不应该这样转义,因此,您可能会对其进行双重字符串化。您说得对,谢谢!我在复制和粘贴时没有注意,没有抓取json设置为的请求true@MikeC这当然是对的(响应是一个主体,而不是一个字符串)。我建议在
json.parse(主体)上使用
json:true
配置选项
但在这种情况下。这将确保如果响应无法解析为JSON,则该错误将传递给回调,而不是引发异常。
body
是字符串吗?您可能需要执行
body=JSON.parse(body)
first。提示是,您得到的字符串化json是转义的。json不应该这样转义,因此,您可能会对其进行双重字符串化。您说得对,谢谢!我在复制和粘贴时没有注意,没有抓取json设置为的请求true@MikeC这当然是对的(响应是一个主体,而不是一个字符串)。我建议在
json.parse(主体)上使用
json:true
配置选项
不过,在这种情况下。这将确保如果响应无法解析为JSON,错误将传递到回调,而不是引发异常。谢谢工作,谢谢!我复制并粘贴了内容类型,但没有注意到内容类型,我想这是我应得的。谢谢工作,谢谢!我复制并粘贴了内容类型,但没有注意到内容类型e内容类型,我想这是我应得的。谢谢工作,谢谢!我复制并粘贴了内容类型,我想这是我应得的。谢谢工作,谢谢!我复制并粘贴了内容类型,我想这是我应得的。