1.0.4 • Published 6 years ago

mongo-connecter v1.0.4

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

mongo-connecter

Build Status Maintainability Code Coverage Build Status

This module lets you connect to your mongodb without hassle. It also contains a prebuilt api.

When you call a function it connects to your mongodb and the collection, executes the function/functions you want. Then it closes the db. The functions are asynchronous and returns promises, therefore you'll need to use await or .then().

Installation

npm install mongo-connecter --save

Setup

const dsn = "mongodb://localhost:27017/people"
const myCollection  = require('mongo-connecter').init(dsn, 'collection')

I will use this for my documentation below:

const artists  = require('mongo-connecter').init(dsn, 'artists')

How to use

collectionDo:

It will execute all functions but return the last,

data = await artists.collectionDo(
    col => col.insert({name: 'Jason'}),
    col => col.findOne({name: 'Jason'})
);

How to use prebuilt api

You only need collectionDo() but you can also use the prebuilt api:

fetch:

const data = await myCollection.fetch()
// or
const data = await artists.fetch({name: "John"}) // returns array with artists with name john

fetchOne:

const data = await myCollection.fetchOne()

insert:

var item = {
    name: "Veronica",
    wikipedia: 'link'
}
const info = await artists.insert(item)

update:

var item = {
    name: 'new name',
    wikipedia: 'new link'
}
await artists.update(_id, item)

remove:

await artists.remove(_id)

insertAndFetch(item): inserts and then returns your new item

updateAndFetch(_id, item): updates and then returns your updated item

Example with express

// Create an object and return list of all objects
router.post("/insert", async (req, res) => {
    var item = {
        name: req.body.name,
        wikipedia: req.body.wikipedia,
        youtube: req.body.youtube
    }

    try {
        await artists.insert(item)
        const data = await artists.fetch()

        res.json(data)
    } catch (err) {
        console.log(err)
        res.json(err)
    }
})

Testing

We use docker as testing enviroment.

// starts mongodb and then test
npm run docker-build-start

// If you only want to start test
npm run docker-build-start test