neo4j-javascript-driver
neo4j-javascript-driver copied to clipboard
Introduce API Redesign
Usage sample:
import neo4j from 'neo4j-driver'
const driver = neo4j.driver(
'neo4j://localhost',
neo4j.auth.basic('neo4j', 'pass')
)
console.log('Running query direct from the driver')
const { records, summary } = await driver.query('RETURN $n as n', { n: 1 }, { database: 'neo4j', clusterMemberAccess: 'READERS' })
console.log(`ns: ${records.map(r => r.get('n'))}`)
console.log(`Result available after: ${summary.resultAvailableAfter}`)
console.log('Executing job directly from the driver')
const { ns, resultAvailableAfter } = await driver.execute(async tx => {
const { records, summary} = await tx.query('RETURN $n as n', { n: 2 })
return { ns: records.map(r => r.get('n')), resultAvailableAfter: summary.resultAvailableAfter }
}, { database: 'neo4j', clusterMemberAccess: 'READERS'})
console.log(`ns ${ns}`)
console.log(`Result available after: ${resultAvailableAfter}`)
console.log('=== Session === ')
const session = driver.session({ database: 'neo4j' })
console.log('Running a query from session')
const { records: sRecords, summary: sSummary } = await session.query('RETURN $n as n', { n: 3 }, { clusterMemberAccess: 'READERS' })
console.log(`ns: ${sRecords.map(r => r.get('n'))}`)
console.log(`Result available after: ${sSummary.resultAvailableAfter}`)
console.log('Executing job directly from the query')
const { sNs, sResultAvailableAfter } = await driver.execute(async tx => {
const { records, summary} = await tx.query('RETURN $n as n', { n: 4 })
return { sNs: records.map(r => r.get('n')), sResultAvailableAfter: summary.resultAvailableAfter }
}, { database: 'neo4j', clusterMemberAccess: 'READERS'})
console.log(`ns ${sNs}`)
console.log(`Result available after: ${sResultAvailableAfter}`)
await session.close()
await driver.close()
Usage example without define db and cluster access:
import neo4j from 'neo4j-driver'
const driver = neo4j.driver(
'bolt://localhost',
neo4j.auth.basic('neo4j', 'pass')
)
console.log('Running query direct from the driver')
const { records, summary } = await driver.query('RETURN $n as n', { n: 1 })
console.log(`ns: ${records.map(r => r.get('n'))}`)
console.log(`Result available after: ${summary.resultAvailableAfter}`)
console.log('Executing job directly from the driver')
const { ns, resultAvailableAfter } = await driver.execute(async tx => {
const { records, summary} = await tx.query('RETURN $n as n', { n: 2 })
return { ns: records.map(r => r.get('n')), resultAvailableAfter: summary.resultAvailableAfter }
})
console.log(`ns ${ns}`)
console.log(`Result available after: ${resultAvailableAfter}`)
console.log('=== Session === ')
const session = driver.session({ database: 'neo4j' })
console.log('Running a query from session')
const { records: sRecords, summary: sSummary } = await session.query('RETURN $n as n', { n: 3 })
console.log(`ns: ${sRecords.map(r => r.get('n'))}`)
console.log(`Result available after: ${sSummary.resultAvailableAfter}`)
console.log('Executing job directly from the query')
const { sNs, sResultAvailableAfter } = await driver.execute(async tx => {
const { records, summary} = await tx.query('RETURN $n as n', { n: 4 })
return { sNs: records.map(r => r.get('n')), sResultAvailableAfter: summary.resultAvailableAfter }
})
console.log(`ns ${sNs}`)
console.log(`Result available after: ${sResultAvailableAfter}`)
await session.close()
await driver.close()