TypeError:无法读取属性' length'未定义?

时间:2016-01-10 14:38:29

标签: node.js rest express

我得到" TypeError:无法读取属性'长度'未定义?"错误,当我尝试从保存在文件中的联系人中提取特定联系人(提供电话号码)时。

exports.query = function(number) {
   var json_result = JSON.parse(read_json_file());
   console.log(json_result);
   var result = json_result.result;
   for (var i = 0; i < result.length; i++) {
      var contact = result[i];
      if (contact.primarycontactnumber === number)    {
         return contact;
      }
   }
   return null;
};

我将上述代码称为:

  app.get('/contacts/:number', function(request, response) {
   response.setHeader('content-type', 'application/json');
   response.end(JSON.stringify(contacts.query(request.params.number)));
 });

我的read_json_file方法的代码是:

function read_json_file() {
   var file = './data/contacts.json';
   return fs.readFileSync(file);
}

1 个答案:

答案 0 :(得分:2)

我认为final ParseFile file = new ParseFile("asdasd.png", data); 没有属性json_result。如果它适合您的函数逻辑,您可以防御性地设置result变量,如下所示:

result
如果var result = json_result.result || []; 未定义(或评估为false),

将空数组分配给result变量。