Package Exports
- spawn-pouchdb-server
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (spawn-pouchdb-server) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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-server
var spawnPouchdbServer = require('spawn-pouchdb-server')
spawnPouchdbServer(function (error, server) {
console.log('PouchDB Server stared at localhost:5985/_utils')
server.stop(function () {
console.log('PouchDB Server stopped')
})
})Full example with all options (and default values)
// npm install --save spawn-pouchdb-server
var spawnPouchdbServer = require('spawn-pouchdb-server')
spawnPouchdbServer({
port: 5985,
directory: './.db',
backend: {
name: 'leveldown',
location: './.db'
},
log: {
file: './.db/pouch.log',
level: 'info'
},
config: {
file: './.db/config.json'
},
timeout: 10000, // in ms
verbose: false
}, function (error, server) {
console.log('PouchDB Server stared at localhost:5985/_utils')
})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.git
cd spawn-pouchdb-server
npm install
npm testLicense
MIT