Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jsumners/abstract-cache-mongo
https://github.com/jsumners/abstract-cache-mongo
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/jsumners/abstract-cache-mongo
- Owner: jsumners
- Created: 2017-11-24T20:34:05.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2019-01-29T00:29:08.000Z (almost 6 years ago)
- Last Synced: 2024-10-04T08:32:12.974Z (about 1 month ago)
- Language: JavaScript
- Size: 13.7 KB
- Stars: 0
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
# abstract-cache-mongo
This module provides a cache client that is compliant with the
[abstract-cache](https://github.com/jsumners/abstract-cache) protocol. This
client implements the `await` style of the protocol.This module uses the native [mongodb driver](https://npm.im/mongodb).
## Example
```js
// Create a client that uses mongodb to connect to `localhost:6379`.
const client = require('abstract-cache-mongo')()client.start()
.then(() => client.set('foo', 'foo', 1000))
.then(() => client.has('foo'))
.then(console.log) // true
.then(() => client.stop())
.catch(console.error)
```## Options
The client factory accepts the an object with the following properties:
+ `client`: An already connected instance of `mongodb`.
+ `dbName`: The name of the database to use. Default: 'abstractCacheMongo'.
+ `segment`: A string denoting the collection to use for storage. The default
is `abstractCacheMongo`.
+ `mongodb`:
* `url`: A regular MongoDB connection URL. Should include username and
password if authentication is needed. The default is:
`mongodb://localhost:27017/abstractCacheMongo'.
* `connectOptions`: Will be passed as the second parameter to
`MongoClient.connect()`.Notes:
1. `client` takes precedence to `mongodb`.
1. The user is responsible for opening and closing the connection.
1. The database name must be specified independently due to changes in the
`mongodb` module as of v3.0.0.## Tests
In order to run the tests for this project a local instance of MongoDB must
be running on port `27017`. A `docker-compose.yml` is included to facilitate
this:```shell
$ docker-compose -d up
$ tap test/*.test.js
````npm test` automates the above.
## License
[MIT License](http://jsumners.mit-license.org/)