spawn-pouchdb-server
Configurable per-app pouchdb-server as a drop-in replacement for CouchDB
Motivation
-
Simplify development setup
CouchDB is a fantastic database, but setting it up for local development is not easy, as it also requires an Erlang runtime environment. Having a built-in PouchDB-Server in our apps will make CouchDB optional.
-
Isolated CouchDB configurations
Many Apps require couchdb users / admins / security settings etc. Using PouchDB makes it simple to isolate these in local development. (But if you don't mind the CouchDB dependency, you can also use node-multicouch for that).
Usage
// npm install --save spawn-pouchdb-servervar spawnPouchdbServer =
Full example with all options (and default values)
// npm install --save spawn-pouchdb-servervar spawnPouchdbServer =
Options
Option | Description | default |
---|---|---|
port | Port number where CouchDB API will be exposed | 5985 |
directory | Directory where PouchDB server will store it's files. Also default location for file based levelup back-ends | 5985 |
backend | Either an object with name and location properties (see below), or false for in-memory |
see below |
backend.name | npm module name of levelup storage back-end | built in leveldown |
backend.location | Location option as passed to levelup(location) | "./.db" |
log.file | Location of log file. Set to false to disable logging to a file. log.file is an alias for config.log.file . Set to false to not persist logs |
"./.db/pouch.log" |
log.level | One of debug , info , warning , error , none . log.level is an alias for config.log.level |
"info" |
config.file | Location of CouchDB-esque config file. Set to false to not persist configuration. |
"./.db/config.json" |
config.* | All the CouchDB Configuration, e.g. config.admins = {"adminuser": "adminpass"} to fix admin party |
|
timeout | Time to connect to backend in milliseconds | 10000 |
verbose (true/false) | Log status information | false |
Local setup & tests
git clone git@github.com:gr2m/spawn-pouchdb-server.gitcd spawn-pouchdb-servernpm installnpm test
License
MIT