我在node-app中使用neo4j-driver来检索neo4j查询结果。我想以graph json(nodes & links)格式得到这个结果,并像这样在d3中填充它:https://www.jsonkeeper.com/b/5ZYS
但我得到的结果是这样的:https://www.jsonkeeper.com/b/FMJ1
我已经尝试了一些解决方案来实现这个目标,但没有人能够完美地实现它。你能指导我如何实现它吗?
以下是node express app中的控制器:
import neo4j from 'neo4j-driver';
import {
NEO4J_PASSWORD,
NEO4J_URL,
NEO4J_USERNAME,
} from '../../constants/index.js';
export const runMatchQuery = async (req, res) => {
const query = req?.body?.query;
if (query?.toLowerCase()?.includes('match')) {
const driver = neo4j.driver(
NEO4J_URL,
neo4j.auth.basic(NEO4J_USERNAME, NEO4J_PASSWORD)
);
const session = driver.session();
try {
const result = await session.run(query);
return res.status(200).json(result);
} catch (error) {
console.log(error);
return res.status(500).json({ message: error.message });
} finally {
await session.close();
await driver.close();
}
} else {
return res.send(405).json({ message: 'Query not permitted.' });
}
};
1条答案
按热度按时间a14dhokn1#
您可以流式传输JSON以输出节点和关系的列表。
它的格式与您的格式不同,但它与列表中的节点和另一个列表中的关系非常接近。
有关JSON输出选项的更多信息,请访问:https://neo4j.com/labs/apoc/4.1/export/json/