Have ideas to improve npm?Join in the discussion! »

    @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;
        } 
    }

    Keywords

    none

    Install

    npm i @alterior/mongo

    DownloadsWeekly Downloads

    2

    Version

    0.0.4

    License

    MIT

    Last publish

    Collaborators

    • avatar