Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.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 如何在NodeJ中使用对象_Javascript_Node.js - Fatal编程技术网

Javascript 如何在NodeJ中使用对象

Javascript 如何在NodeJ中使用对象,javascript,node.js,Javascript,Node.js,我创建了这个函数get_flight\u by_date,它从API中提取航班数据:航班号、起飞、目的地 当我调用此函数时,我需要显示目的地和出发地点。我所做的是: 函数按日期获取航班(日期,回调){ 让请求=要求(“请求”); 让url= "http://api.aviationstack.com/v1/flights?access_key=xxxxxx&flight_status=scheduled"; 请求(url、函数(错误、响应、正文){ 如果(错误){ 日志(“错误:”,错误); 回

我创建了这个函数
get_flight\u by_date
,它从API中提取航班数据:航班号、起飞、目的地

当我调用此函数时,我需要显示目的地和出发地点。我所做的是:

函数按日期获取航班(日期,回调){
让请求=要求(“请求”);
让url=
"http://api.aviationstack.com/v1/flights?access_key=xxxxxx&flight_status=scheduled";
请求(url、函数(错误、响应、正文){
如果(错误){
日志(“错误:”,错误);
回调(err);
}否则{
让vol=JSON.parse(body);
num=vol.pagination.limits;
结果=[];
for(设i=0;i<10;i++){
航班日期=卷数据[i]。航班日期;
一次航班={
编号:vol.data[i].航班号,
日期:卷数据[i]。航班日期,
出发时间:vol.data[i].出发时间,时区,
到达:vol.data[i].arrival.timezone,
发件人:vol.data[i].出发机场,
收件人:vol.data[i].arrival.airport
};
结果:推送(一次飞行);
}
回调(null,result);
}
});
}
功能按航班日期获取航线(日期、请求、回复){
按日期获取航班(日期、函数(错误、结果){
如果(错误){
控制台日志(“错误”);
}否则{
var-links=[];
map(result=>{
links.push(
“来自”+
" " +
结果[0][离开]+
" " +
“到”+
" " +
结果[0][到达]
);
});
控制台日志(链接);
}
});
}
在航班日期(“2020-11-02”)前获得航线;

我在控制台中得到的信息是:
ReferenceError:未定义离开

从快速阅读来看,错误可能与
结果[0][离开]
有关。可能需要是
result[0][“出发”][code>(对于
result[0][arrival][arrival][code>,也需要是
result[0][“arrival”][arrival][/code>)。

get\u flight\u by\u date返回一个数组,该数组在get\u route\u by\u-by\u-flight\u-date的第6行循环

因此,我们应该有如下代码

function get_route_by_flight_date(date, req, res) {
  get_flight_by_date(date, function (err, results) {
    if (err) {
      console.log("error");
    } else {
      var links = [];
      results.map(result => {
        links.push(
          "from " +
            " " +
            result.departure +
            " " +
            "to" +
            " " +
            result.arrival
        );
      });

      console.log(links);
    }
  });
}
变化如下:

  • 我已将输入从“结果”更改为“结果”,使其更有意义
  • 当您循环时,迭代的对象被命名为“result”——就像您的代码中一样
  • 要点:结果是一个JSON对象。因此,访问出发和到达作为result.arrival和result.deviation,而不是result[arrival]和result[deviation]。在后一种情况下,代码正在寻找一个名为execution和arrival的变量,而我们打算引用对象的键,它们被表示为键

按航班日期获取路线
从未访问过
出发
。它们存在于不同的作用域中。
result.map(result=>{
您引用的
result[0]
很难理解。那么我应该怎么做呢?它将是
result.exition
,您在数组上的映射(应该是forEach),您应该控制台.log(result)在使用之前,请确保您访问的内容正确。此
结果[0][deference]
应为
结果[0]。deference
。结构
[deference]
正在查找该函数中不存在的名为
deference
的变量。