javascript - 在 Nodejs 中陷入 JSON 嵌套对象和回调之间

标签 javascript json node.js callback

我的应用程序调用模块来解析嵌套的 JSON 对象,以读取 2 个键的值。

parseData(str, function (error, str) {
    if (err) {
        console.log("Error - parseData : ", err);
    } else {
        console.log(str);
    }

parseData模块如下

function parseData(str, callback) {

  function recursiveFunction(obj) {
    var keysArray = Object.keys(obj);

    for (var i = 0; i < keysArray.length; i++) {
      var key = keysArray[i];
      var value = obj[key];

      if (value === Object(value)) {
        parseData(value);
      } else {
        if (key == 'title') {
          title = value;
        }

        if (key == 'extract') {
          var extract = value.replace(/(\r\n|\n|\r)/gm," ");
          callback(null, JSON.stringify('{"title":'+ title + ', "text":' + extract));
        }
      }
    }
  }

  recursiveFunction(str);

}

但它显示以下错误

/modules/parseData.js:22
               callback(null, JSON.stringify('{"title":'+ title + ',    "text":' + extract));
               ^

TypeError: callback is not a function

为什么回调失败?如何返回 JSON 对象?

编辑

代码中存在一些错误,现已更正。

   function parseData(str, callback) {
       function recursiveFunction(obj) {
           var keysArray = Object.keys(obj);

           for (var i = 0; i < keysArray.length; i++) {
               var key = keysArray[i];
               var value = obj[key];

               if (value === Object(value)) {
                   recursiveFunction(value);
               } else {
                   if (key == 'title') {
                       title = value;
                   }

                   if (key == 'extract') {
                       var extract = value.replace(/(\r\n|\n|\r)/gm," "); 
                       callback(null, JSON.stringify('{"title":'+ title + ', "text":' + extract));
                   }
               }
           }
       }
       recursiveFunction(str);
    };

最佳答案

您正在调用 parseData(value); 并且没有传递回调;如果您希望使用原始回调,请传递callback

关于javascript - 在 Nodejs 中陷入 JSON 嵌套对象和回调之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39809395/

相关文章:

javascript - 在html表格的行下方显示div?

mysql - Spring data JPA中将java bean的List<Long>转换为mysql的json

javascript - 带日期的 Mongoose 混合类型字段

javascript - 没有找到选择器的 Node ,但选择器在 HTML 页面上

javascript - Google Maps 向 map 添加标记,然后在 Ruby on Rails 中存储纬度和经度

javascript - 为什么只有一个 JavaScript 函数执行 onClick?

javascript - 无法获取数组中对象的索引

jquery - $.getJSON 请求上没有 'Access-Control-Allow-Origin' header

php - 在 laravel 5.2 中使用 mysql 和 php 嵌套 json

javascript - withCredentials 和通配符 * - 'Access-Control-Allow-Origin' header 问题