TypeError:无法读取未定义的属性“长度”?
我得到“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); }
我想, json_result
没有属性result
。 如果它适合你的function逻辑,你可以防守地设置result
variables像这样:
var result = json_result.result || [];
如果json_result.result
未定义(或计算为false),那么会将空数组赋给result
variables。