Skip to content
/ allco Public

a lib makes writing async codes and error handling which is like coding in golang(developing)

Notifications You must be signed in to change notification settings

dayuoba/allco

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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] = await 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);

About

a lib makes writing async codes and error handling which is like coding in golang(developing)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published