TypeError: Cannot read property 'identity' of null Javascript Neo4J data
TypeError: Cannot read property 'identity' of null Javascript Neo4J data
也许你能帮我解决这个问题。我试图在我的 js 应用程序中编写一个对 Neo4J 数据库的获取请求并将此数据发送到 ejs 页面。问题是当我的请求没有得到任何东西(null)时,它会阻止我所有的代码并出现错误:“TypeError:无法读取 属性 'identity' of null”。我唯一要寻找的是,当没有检索到任何数据时,如果不抛出任何错误,就不会发生任何事情......只继续代码的其余部分,但我不知道如何处理这个“空”。
app.get('/page/:id', function(req, res) {
var id = req.params.id;
session
.run("OPTIONAL MATCH(a:Person)-[r]-(b) WHERE id(a)=toInteger($idParam) RETURN b", {
idParam:id
})
.then(function(result2){
var RelationArr = [];
result2.records.forEach(function(record){
RelationArr.push({
id: record._fields[0].identity.low,
name: record._fields[0].properties.name,
title: record._fields[0].properties.title,
});
});
res.render('person', {
relation: RelationArr,
});
})
.catch(function(err){
console.log(err);
});
})
访问props前检查值是否存在
app.get('/page/:id', function(req, res) {
var id = req.params.id;
session
.run("OPTIONAL MATCH(a:Person)-[r]-(b) WHERE id(a)=toInteger($idParam) RETURN b", {
idParam:id
})
.then(function(result2){
var RelationArr = [];
result2.records.forEach(function(record){
if(record._fields[0]) {
RelationArr.push({
id: record._fields[0].identity.low,
name: record._fields[0].properties.name,
title: record._fields[0].properties.title,
});
}
});
res.render('person', {
relation: RelationArr,
});
})
.catch(function(err){
console.log(err);
});
})
我没有更改 javascript 代码来处理空值,而是更改了 Neo4J 查询以避免“空”值:
MATCH(a)-[r]-(b) WHERE id(a)=toInteger($idParam) OPTIONAL MATCH (a) WHERE id(a)=toInteger($idParam) RETURN b
谢谢@CaptEmulation,你的贡献给了我查看查询结果的提示。
也许你能帮我解决这个问题。我试图在我的 js 应用程序中编写一个对 Neo4J 数据库的获取请求并将此数据发送到 ejs 页面。问题是当我的请求没有得到任何东西(null)时,它会阻止我所有的代码并出现错误:“TypeError:无法读取 属性 'identity' of null”。我唯一要寻找的是,当没有检索到任何数据时,如果不抛出任何错误,就不会发生任何事情......只继续代码的其余部分,但我不知道如何处理这个“空”。
app.get('/page/:id', function(req, res) {
var id = req.params.id;
session
.run("OPTIONAL MATCH(a:Person)-[r]-(b) WHERE id(a)=toInteger($idParam) RETURN b", {
idParam:id
})
.then(function(result2){
var RelationArr = [];
result2.records.forEach(function(record){
RelationArr.push({
id: record._fields[0].identity.low,
name: record._fields[0].properties.name,
title: record._fields[0].properties.title,
});
});
res.render('person', {
relation: RelationArr,
});
})
.catch(function(err){
console.log(err);
});
})
访问props前检查值是否存在
app.get('/page/:id', function(req, res) {
var id = req.params.id;
session
.run("OPTIONAL MATCH(a:Person)-[r]-(b) WHERE id(a)=toInteger($idParam) RETURN b", {
idParam:id
})
.then(function(result2){
var RelationArr = [];
result2.records.forEach(function(record){
if(record._fields[0]) {
RelationArr.push({
id: record._fields[0].identity.low,
name: record._fields[0].properties.name,
title: record._fields[0].properties.title,
});
}
});
res.render('person', {
relation: RelationArr,
});
})
.catch(function(err){
console.log(err);
});
})
我没有更改 javascript 代码来处理空值,而是更改了 Neo4J 查询以避免“空”值:
MATCH(a)-[r]-(b) WHERE id(a)=toInteger($idParam) OPTIONAL MATCH (a) WHERE id(a)=toInteger($idParam) RETURN b
谢谢@CaptEmulation,你的贡献给了我查看查询结果的提示。