我得到" 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);
}
答案 0 :(得分:2)
我认为final ParseFile file = new ParseFile("asdasd.png", data);
没有属性json_result
。如果它适合您的函数逻辑,您可以防御性地设置result
变量,如下所示:
result
如果var result = json_result.result || [];
未定义(或评估为false),将空数组分配给result
变量。