我正在使用NodeJs v8.9.4和Neo4j 3.5.5。我的neo4j数据库在Graphenedb上,我的应用程序在Heroku上,但是问题在我的本地应用程序和数据库上也存在。
直到上周,下面的代码一直没有问题。我已经能够使用我的nodejs应用程序发布到neo4j数据库中。
问题:当我使用我的应用在neo4j中发布或创建新节点时,出现以下错误:
(节点:12184)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:1):ReferenceError:未定义err
(节点:12184)[DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝。将来,未处理的承诺拒绝将以非零退出代码终止Node.js进程。 POST /啤酒/添加--毫秒--
再次,直到上周我才看到这些错误。
我可以从neo4j db中获取数据并将其读取到我的应用程序中。我尝试从本地应用程序向本地neo4j db运行相同的Post。再说一次,直到上周,它一直没有问题,但是在本地也不行。我的代码完全没有改变。如有必要,我可以提供更多的server.js代码或index.ejs代码。
server.js file
const driver = neo4j.driver('bolt://localhost:7687', neo4j.auth.basic('neo4j','neo4j'));
//Post to create beer node
app.post('/beer/add', async (req, res) => {
const {beername, abv, ibu, rating, beertypename, breweryname} = req.body;
try {
const result = await session.run('Match (bt:BeerType {name: {beertypenameParam}}), (bry:Brewery {name: {brewerynameParam}}) Create (bt)<-[r:IS_A]-(b:Beer {name: {beernameParam},ABV:{abvParam},IBU:{ibuParam},Rating:{ratingParam}})<-[r2:BREWS]-(bry) Set b.date = apoc.date.format(timestamp(),"ms","MM/dd/yyyy"),b.Uid = apoc.create.uuid() Return bt,b,bry', {beertypenameParam:beertypename,brewerynameParam:breweryname,beernameParam:beername, abvParam:abv, ibuParam:ibu, ratingParam:rating})
if (result) {
res.redirect('/');
session.close()
}
} catch (e) {
console.log(err)
};
});
我希望// Post在上面创建啤酒节点代码以创建新的节点/对象,但事实并非如此。但是,我仍然可以使用我的应用程序创建关系/边。例如,执行以下代码以在我的应用程序中的2个节点/对象之间创建关系就可以了...
server.js file
//Post to create relationship between beer and seller
app.post('/beer/seller/add',async (req, res) => {
const {beername, sellername} = req.body;
try {
const result = await session.run('Match (b:Beer {name:{beernameParam}}),(s:Seller {name:{sellernameParam}}) Create (b)-[r:PURCHASED_FROM]->(s) Return b,s', {beernameParam:beername, sellernameParam:sellername});
if (result) {
res.redirect('/');
session.close()
}
} catch (e) {
console.log(err)
};
});
如何修复// Post以创建啤酒节点代码?
答案 0 :(得分:0)
问题出在这一行:
} catch (e) {
console.log(err)
};
运行时将生成语法错误-未定义err
,但定义了e
。我猜到过去一周为止,您的代码从未产生try/catch
捕获到的错误。