Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including fastify-couchdb with all npm packages installed. Try it out:

var fastifyCouchdb = require("fastify-couchdb")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

fastify-couchdb v0.2.0

Fastify CouchDB connection plugin

fastify-couchdb

js-standard-style

Fastify CouchDB connection plugin, with this you can share the same CouchDB connection in every part of your server.

Under the hood the popular nano module is used, with the options that you pass to register passed to the nano instance.

Install

npm i fastify-couchdb --save

Usage

Simply add it to your project with register and you're done!

When registering you can pass any options supported by nano to the plugin:

  fastify.register(require('fastify-couchdb'), {
    url: 'http://localhost:5984',
    requestDefaults : { "proxy" : "http://someproxy" },
    // etc
  })

This plugin will add the couch namespace in your Fastify instance which you can treat exactly like an instance of nano. Inside your routes you can then access the full range of nano's methods documented here.

Example:

const fastify = require('fastify')

fastify.register(require('fastify-couchdb'), {
  url: 'http://localhost:5984'
})

fastify.get('/rabbit', (req, reply) => {
  const rabbits = this.couch.db.use('rabbits')
  rabbits.get('whiterabbit', function(err, body) {
    reply.send(err || body)
  });

})

Async await is support as well if you prefer:

const fastify = require('fastify')

fastify.register(require('fastify-couchdb'), {
  url: 'http://localhost:5984'
})

fastify.get('/rabbit', async (req, reply) => {
  try {
    const rabbits = fastify.couch.db.use('rabbits');
    const body = await rabbits.get('whiterabbit')
    reply.send(body);
  }
  catch(err) {
    reply.send(err);
  }

})

Development and Testing

First, start couchdb with:

$ npm run couchdb

Then in another terminal:

$ npm test

License

Licensed under Apache-2.0.

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free