Couchbase Node.js Analytics Client
Node.js client for Couchbase Analytics
Installing the SDK
Until a version is available on npm, the SDK can be installed with the following command.
Install the SDK via npm
:
npm install https://github.com/couchbaselabs/analytics-nodejs-client
Using the SDK
Some more examples are provided in the examples directory.
CommonJS
Connecting and executing a query
const analytics = require('couchbase-analytics')
async function main() {
const clusterEndpoint = 'https://--your-instance--'
const username = 'username'
const password = 'password'
const credential = new analytics.Credential(username, password)
const cluster = analytics.createInstance(clusterEndpoint, credential)
let qs = 'SELECT * FROM `travel-sample`.inventory.airline LIMIT 10;'
let res = await cluster.executeQuery(qs)
for await (let row of res.rows()) {
console.log('Found row: ', row)
}
console.log('Metadata: ', res.metadata())
qs =
'SELECT * FROM `travel-sample`.inventory.airline WHERE country=$1 LIMIT $2;'
res = await cluster.executeQuery(qs, { parameters: ['United States', 10] })
for await (let row of res.rows()) {
console.log('Found row: ', row)
}
console.log('Metadata: ', res.metadata())
qs =
'SELECT * FROM `travel-sample`.inventory.airline WHERE country=$country LIMIT $limit;'
res = await cluster.executeQuery(qs, {
namedParameters: { country: 'United States', limit: 10 },
})
for await (let row of res.rows()) {
console.log('Found row: ', row)
}
console.log('Metadata: ', res.metadata())
}
main()
.then(() => {
console.log('Finished. Exiting app...')
})
.catch((err) => {
console.log('ERR: ', err)
console.log('Exiting app...')
process.exit(1)
})
ES Modules
Connecting and executing a query
import { Certificates, Credential, createInstance } from "couchbase-analytics"
async function main() {
const clusterEndpoint = 'https://--your-instance--'
const username = 'username'
const password = 'password'
const credential = new Credential(username, password)
const cluster = createInstance(clusterEndpoint, credential)
let qs = "SELECT * FROM `travel-sample`.inventory.airline LIMIT 10;"
let res = await cluster.executeQuery(qs)
for await (let row of res.rows()) {
console.log("Found row: ", row)
}
console.log("Metadata: ", res.metadata())
qs =
"SELECT * FROM `travel-sample`.inventory.airline WHERE country=$1 LIMIT $2;"
res = await cluster.executeQuery(qs, { parameters: ["United States", 10] })
for await (let row of res.rows()) {
console.log("Found row: ", row)
}
console.log("Metadata: ", res.metadata())
qs =
"SELECT * FROM `travel-sample`.inventory.airline WHERE country=$country LIMIT $limit;"
res = await cluster.executeQuery(qs, {
namedParameters: { country: "United States", limit: 10 },
})
for await (let row of res.rows()) {
console.log("Found row: ", row)
}
console.log("Metadata: ", res.metadata())
}
main()
.then(() => {
console.log("Finished. Exiting app...")
})
.catch((err) => {
console.log("ERR: ", err)
console.log("Exiting app...")
process.exit(1)
})