0.7.2 • Published 9 years ago
repositories v0.7.2
repositories 




Installation
$ npm install --save repositoriesUsage
const repositories = require('repositories');AJAX
Store some data on a remote server implementing a RESTful API.
const AJAXRepository = require('repositories').AJAXRepository;
const ajaxRepo = new AJAXRepository('http://localhost:3000/api/cats');
ajaxRepo.add({name:'Fido'}, (err, data) => {
console.log(data);
});Redis
const redis = require('redis');
const RedisRepository = require('repositories').RedisRepository;
const redisRepo = new RedisRepository(redis, 'Cats');
redisRepo.add({name:'Fido'}, (err, data) => {
console.log(data);
redisRepo.disconnect();
});Sequelize (PostgreSQL)
/** requires you to install sequelize and pg */
const PostgreRepository = require('repositories').PostgreRepository;
const Sequelize = require('sequelize');
sequelize = new Sequelize('test', 'admin', 'admin', {
host: 'localhost',
dialect: 'postgres'
});
const modelName = 'clients';
var schema = sequelize.define(modelName, {
_id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
name: Sequelize.STRING
});
const sequelizeRepo = new PostgreRepository(sequelize, modelName);
sequelizeRepo.add({name:'Fido'}, (err, data) => {
console.log(data);
});
sequelizeRepo.findAll((err, data) => {
console.log(data);
sequelizeRepo.disconnect();
});Cassandra
const CassandraRepository = require('repositories').CassandraRepository;
const Cassandra = require('express-cassandra');
const cassandra = Cassandra.createClient({
clientOptions: {
contactPoints: ['127.0.0.1'],
protocolOptions: { port: 9042 },
keyspace: 'mykeyspace',
queryOptions: { consistency: Cassandra.consistencies.one }
},
ormOptions: {
defaultReplicationStrategy: {
class: 'SimpleStrategy',
replication_factor: 1
},
migration: 'safe',
createKeyspace: true
}
});
export const modelName = 'Cats';
export const schema = {
fields: {
_id: 'text',
name: 'text'
},
key: ['_id']
};
let cassandraRepo;
cassandra.connect(() => {
cassandra.loadSchema(modelName, schema);
cassandraRepo = new CassandraRepository(cassandra, modelName);
cassandraRepo.add({name:'Fido'}, (err, data) => {
console.log(data);
cassandraRepo.disconnect();
});
});Filesystem Repository
Create a database out of a local file. Configurable for different file formats.
const FSRepository = require('repositories').FSRepository;
const repo = new FSRepository('./data.json');
// default json format
const cat = { name : 'Fido' };
repo.add(cat, (err, data) => {
console.log(data);
repo.disconnect(); //not really
});
// ini istead of json
const INISerializer = require('repositories/lib/serializers/INISerializer');
repo.use(new INISerializer());
// ...Mongoose Repository
const mongoose = require('mongoose');
const modelName = 'cats';
const schema = new mongoose.Schema({
name: { type: String }
});
mongoose.model(modelName, schema);
mongoose.connect('mongodb://localhost');
const MongooseRepository = require('repositories').MongooseRepository;
const repo = new MongooseRepository(mongoose, modelName);
// default json format
const cat = { name : 'Fido' };
repo.add(cat, (err, data) => {
console.log(data);
repo.disconnect();
});MongoDB Native Repository
const MongoClient = require('mongodb').MongoClient;
const collection = 'cats';
const MongoRepository = require('repositories').MongoRepository;
let repo;
MongoClient.connect('mongodb://admin:admin@localhost:27017/travis', (err, db) => {
if (err) {
// Handle error and return (or throw)
}
repo = new MongoRepository(db, collection);
repo.add({name:'Fido'}, (err, data) => {
console.log(data);
repo.disconnect();
});
}Contributing
Make sure the tests pass :D
License
MIT © Ben Lugavere
0.7.2
9 years ago
0.7.1
9 years ago
0.7.0
9 years ago
0.6.4
9 years ago
0.6.3
9 years ago
0.6.2
9 years ago
0.6.1
10 years ago
0.6.0
10 years ago
0.5.2
10 years ago
0.5.1
10 years ago
0.5.0
10 years ago
0.4.1
10 years ago
0.4.0
10 years ago
0.3.0
10 years ago
0.2.3
10 years ago
0.2.2
10 years ago
0.1.8
10 years ago
0.1.7
10 years ago
0.1.6
10 years ago
0.1.5
10 years ago
0.1.3
10 years ago
0.1.2
10 years ago
0.1.1
10 years ago
0.1.0
10 years ago
0.0.0
10 years ago