allco

0.0.16 • Public • Published

allco

clarify your async js code without plenty of try{}catch(e){}

a lib for writing i/o codes and error handling which is like coding in golang

As node supports async/await feature, we can code with less calbacks, but the same time we get a lot of try catch codes when error handling so, I write this lib for wrapping the natural async i/o modules.

As there is a popular node_module called co, so i name this one all-co :)

Note

this module is still being developed

Demo

use allco:

const mongodb = require('allco').mongodb;
 
async function test() {
    var [err, db] = await mongodb.db('mongodb://localhost:27017/test');
    if (err) throw err; // do your error handling here
    
    let main = db.collection('main');
    var [err, rep] = main.insert({foo: 'bar'});
    if (err) throw err;
    
    return [err, rep];
}
 
test()
.then((result) => {
    console.log(result);
})
.catch(e => console.log(e));

use native:

const mongo = require('mongodb').MongoClient;
 
async function test() {
    // do your error handling with `try/catch`
    try {
        var db = await mongo.connect('mongodb://localhost:27017');
    } catch(e) {
        return console.log(e);
    }
 
    let main = db.collection('main');
    // ...
}
 
test();
 

Installation

npm install allco

Usage

Note

If you care about memory usage of allco,you can require what you need dividually.

e.g. const mongodb = require('allco/mongodb');

fs

mongodb

import:

const mongodb = require('allco').mongodb; 
// or 
const mongodb = require('allco/mongodb');

connect:

// connect to db
var [err, db] = await mongodb.db('mongodb://localhost:27017/test');
if (err) return console.log(err);
// get a collection instance
let main = db.collection('main');

retrieve:

// find with query which equals find(query).toArray((err, data) => {...})
var [err, rep] = await main.find({});
if (err) return console.log(err);
// findOne method
var [err, rep] = await main.findOne({foo: 'fool'});
if (err) return console.log(err);

insert:

// insert a doc
var [err, rep] = await main.insert({foo: 'bar'});
if (err) return console.log(err);

update:

// update a doc
var [err, rep] = await main.update({foo: 'bar'}, {$set: {foo: 'fool'}}, {multi: true});
if (err) return console.log(err);

delete:

// remove a doc
var [err, rep] = await main.remove({foo: 'bar'});
if (err) return console.log(err);

Package Sidebar

Install

npm i allco

Weekly Downloads

1

Version

0.0.16

License

MIT

Last publish

Collaborators

  • dayuoba