@alterior/mongo
TypeScript icon, indicating that this package has built-in type declarations

0.0.4 • Public • Published

Alterior MongoDB Support

npm version Build Status Join the chat at https://gitter.im/alterior-mvc/Lobby

Use this package if you want to connect to MongoDB from your Alterior application.

Accessing MongoDB from Alterior

npm i mongodb @alterior/mongo

Now use mongoProvider to inject an instance of mongodb.Db into your application:

import { AppOptions } from '@alterior/core';
import { mongoProvider } from '@alterior/mongo';
import * as mongodb from 'mongodb';

@AppOptions({
    providers: [mongoProvider(mongodb.Db)]
})
class App { 
}

Now, you can inject mongodb.Db into your controllers:

import { Controller, Get } from '@alterior/core';
import * as mongodb from 'mongodb';

@Controller()
class SampleController {
    constructor(
        private db : mongodb.Db
    ) {
    }
    
    @Get('/stuff')
    public getStuff() {
        return this.db.collection('stuff').find().toArray();
    }
}

You can pass any token into mongoProvider, which can be used to inject multiple database connections if necessary.

Storing Sessions in MongoDB

This package also provides a connector for storing Express sessions in MongoDB using mongo-connect.

import * as mongodb from 'mongodb';
import { mongoProvider, mongoSession } from '@alterior/mongo';

@AppOptions({
	providers: [mongoProvider(mongodb.Db)]
	middleware: [mongoSession(mongodb.Db, SESSION_SECRET)]
})
export class App { }

You can then access and modify session data from your route methods. We recommend you make an interface representing your session data.

interface SessionData {
	displayName : string;
	cartTotal : number;
}

@Controller()
class SampleController {
	@Get('/cart/total') 
	public get(session : SessionData) {
		return session.cartTotal;
	} 
}

Readme

Keywords

none

Package Sidebar

Install

npm i @alterior/mongo

Weekly Downloads

1

Version

0.0.4

License

MIT

Last publish

Collaborators

  • rezonant