{"_id":"@alterior/mongo","_rev":"9-8dbd0e771660353b55ee00edcce2f30f","name":"@alterior/mongo","description":"MongoDB connector for Alterior applications","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.1":{"name":"@alterior/mongo","private":false,"version":"0.0.1","description":"MongoDB connector for Alterior applications","main":"index.js","typings":"index.d.ts","scripts":{"test":"tsc && node ./node_modules/mocha/bin/mocha lib/**/*.test.js","dev-test":"nodemon -e ts --ignore \"*.d.ts\" --exec npm test ","build":"tsc","prepublish":"typings install && tsc"},"repository":{"type":"git","url":"git+https://github.com/alterior-mvc/alterior-mongo.git"},"author":{"name":"William Lahti","email":"wilahti@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/alterior-mvc/alterior-mongo/issues"},"homepage":"https://github.com/alterior-mvc/alterior-mongo#readme","dependencies":{"@alterior/core":"0.0.6","mongodb":"^2.2.10"},"devDependencies":{"mocha":"^3.0.2"},"gitHead":"aaf37ccc1981efc2396c354434f4733dec8373cf","_id":"@alterior/mongo@0.0.1","_shasum":"115590e78706011665cc5813d8c8c38d05b0c9c5","_from":".","_npmVersion":"3.10.6","_nodeVersion":"6.5.0","_npmUser":{"name":"alterior","email":"wilahti@gmail.com"},"dist":{"shasum":"115590e78706011665cc5813d8c8c38d05b0c9c5","tarball":"https://registry.npmjs.org/@alterior/mongo/-/mongo-0.0.1.tgz","integrity":"sha512-WXVNIpoGJL1PgmOl8nnqaGYTQw3quC2eNRmuC+KsrgusQh+/X5w6ECuoAisX4TSk2KHtoUvx+K6/5OUfdooIUA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGxb4eBOPNuKJAzO1mwQqpbz+nsR1Fwv23nPHRZqgt04AiEAphG2wUNUdWIPs5Zw970EDM6d8hrmpM/BdGxf0EdAluA="}]},"maintainers":[{"name":"alterior","email":"wilahti@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/mongo-0.0.1.tgz_1474767418416_0.22128374432213604"},"directories":{}},"0.0.2":{"name":"@alterior/mongo","private":false,"version":"0.0.2","description":"MongoDB connector for Alterior applications","main":"index.js","typings":"index.d.ts","scripts":{"test":"tsc && node ./node_modules/mocha/bin/mocha lib/**/*.test.js","dev-test":"nodemon -e ts --ignore \"*.d.ts\" --exec npm test ","build":"tsc","prepublish":"typings install && tsc"},"repository":{"type":"git","url":"git+https://github.com/alterior-mvc/alterior-mongo.git"},"author":{"name":"William Lahti","email":"wilahti@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/alterior-mvc/alterior-mongo/issues"},"homepage":"https://github.com/alterior-mvc/alterior-mongo#readme","dependencies":{"@alterior/core":"0.0.6","connect-mongo":"^1.3.2","express":"^4.14.0","express-session":"^1.14.1","mongodb":"^2.2.10"},"devDependencies":{"mocha":"^3.0.2"},"gitHead":"9d17220ae8d80b71367e8fb52101cb2efc4f0ed9","_id":"@alterior/mongo@0.0.2","_shasum":"8d60c19f3104b27e64fe773f368db655da4c4d22","_from":".","_npmVersion":"3.10.6","_nodeVersion":"6.5.0","_npmUser":{"name":"alterior","email":"wilahti@gmail.com"},"dist":{"shasum":"8d60c19f3104b27e64fe773f368db655da4c4d22","tarball":"https://registry.npmjs.org/@alterior/mongo/-/mongo-0.0.2.tgz","integrity":"sha512-u/+yxdKVuhwWntIL8EnlbObMsazNEwdNp6aq+27vFOctPfm/AeOM1eP50RPvy9LweX06T1mGs88ehCoy4wp7/A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE2GdqpUhEfy9cSrxpzi9ILJgfOGuIkfC2AB4FRJgt8rAiEA43BWfR5PURDCtWj/NcQhtY3Bl9vGmgiUoMJ25EP7qm8="}]},"maintainers":[{"name":"alterior","email":"wilahti@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/mongo-0.0.2.tgz_1474788005253_0.7360705877654254"},"directories":{}},"0.0.3":{"name":"@alterior/mongo","private":false,"version":"0.0.3","description":"MongoDB connector for Alterior applications","main":"index.js","typings":"index.d.ts","scripts":{"test":"tsc && node ./node_modules/mocha/bin/mocha lib/**/*.test.js","dev-test":"nodemon -e ts --ignore \"*.d.ts\" --exec npm test ","build":"tsc","prepublish":"typings install && tsc"},"repository":{"type":"git","url":"git+https://github.com/alterior-mvc/alterior-mongo.git"},"author":{"name":"William Lahti","email":"wilahti@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/alterior-mvc/alterior-mongo/issues"},"homepage":"https://github.com/alterior-mvc/alterior-mongo#readme","dependencies":{"@alterior/core":"0.0.8","connect-mongo":"^1.3.2","express":"^4.14.0","express-session":"^1.14.1","mongodb":"^2.2.10"},"devDependencies":{"mocha":"^3.0.2"},"gitHead":"8754181f12c707f22077089296186c1d44a35eba","_id":"@alterior/mongo@0.0.3","_shasum":"213393db61c475a462ea627476cedded5c416e25","_from":".","_npmVersion":"3.10.6","_nodeVersion":"6.5.0","_npmUser":{"name":"alterior","email":"wilahti@gmail.com"},"dist":{"shasum":"213393db61c475a462ea627476cedded5c416e25","tarball":"https://registry.npmjs.org/@alterior/mongo/-/mongo-0.0.3.tgz","integrity":"sha512-wWN0zAd9sD50t568Urap6BEdtemq0pMRJ4MJUcsTdi1bYaG5EYNDFp6edcmLC8+CNbgoYTFSUkyJ2+PvwOtwaQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBmBFkfxKPLSHWQGYske13+T7/lQbsA6BbN+9O1YIev8AiEAtg2lRMFz54zY8lNqqZzHHmc0uLRcliFdBPuY3DbydIo="}]},"maintainers":[{"name":"alterior","email":"wilahti@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/mongo-0.0.3.tgz_1474852063524_0.7116544919554144"},"directories":{}},"0.0.4":{"name":"@alterior/mongo","private":false,"version":"0.0.4","description":"MongoDB connector for Alterior applications","main":"index.js","typings":"index.d.ts","scripts":{"test":"tsc && node ./node_modules/mocha/bin/mocha lib/**/*.test.js","dev-test":"nodemon -e ts --ignore \"*.d.ts\" --exec npm test ","build":"tsc","prepublish":"typings install && tsc"},"repository":{"type":"git","url":"git+https://github.com/alterior-mvc/alterior-mongo.git"},"author":{"name":"William Lahti","email":"wilahti@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/alterior-mvc/alterior-mongo/issues"},"homepage":"https://github.com/alterior-mvc/alterior-mongo#readme","dependencies":{"@alterior/core":"0.0.8","connect-mongo":"^1.3.2","express":"^4.14.0","express-session":"^1.14.1","mongodb":"^2.2.10"},"devDependencies":{"mocha":"^3.0.2"},"gitHead":"19bce7a9fe2e224870be16b19485bfa22ae172da","_id":"@alterior/mongo@0.0.4","_shasum":"b76e086b9e654daf1a115c74b801a5d69a9d77f6","_from":".","_npmVersion":"3.10.6","_nodeVersion":"6.5.0","_npmUser":{"name":"alterior","email":"wilahti@gmail.com"},"dist":{"shasum":"b76e086b9e654daf1a115c74b801a5d69a9d77f6","tarball":"https://registry.npmjs.org/@alterior/mongo/-/mongo-0.0.4.tgz","integrity":"sha512-m0tCOhC4qqH1Mv9BNE5edOpFTcJHpLCwz5xbk1I/HnwK1jUGfoJFBABwHd4p7PinjMqrV3yiplCTIi5sQptO7g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDfsPu7uagb4TfomGxVlNzjsUieazxn6ieZHw3DN+QY6AIhAO0pCWdL+dJIlOd2Q976hN3p3BgCdJgJQ4Ft6bIde8gM"}]},"maintainers":[{"name":"alterior","email":"wilahti@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/mongo-0.0.4.tgz_1474852184476_0.406920209992677"},"directories":{}}},"readme":"# Alterior MongoDB Support\r\n[![npm version](https://badge.fury.io/js/%40alterior%2Fmongo.svg)](https://badge.fury.io/js/%40alterior%2Fmongo)\r\n[![Build Status](https://travis-ci.org/alterior-mvc/alterior-mongo.svg?branch=master)](https://travis-ci.org/alterior-mvc/alterior-mongo)\r\n[![Join the chat at https://gitter.im/alterior-mvc/Lobby](https://badges.gitter.im/alterior-core/Lobby.svg)](https://gitter.im/alterior-mvc/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\r\n\r\nUse this package if you want to connect to MongoDB from your [Alterior](https://github.com/alterior-mvc/alterior-core) application.\r\n\r\n## Accessing MongoDB from Alterior \r\n\r\n```\r\nnpm i mongodb @alterior/mongo\r\n```\r\n\r\nNow use `mongoProvider` to inject an instance of `mongodb.Db` into your application:\r\n\r\n```typescript\r\nimport { AppOptions } from '@alterior/core';\r\nimport { mongoProvider } from '@alterior/mongo';\r\nimport * as mongodb from 'mongodb';\r\n\r\n@AppOptions({\r\n    providers: [mongoProvider(mongodb.Db)]\r\n})\r\nclass App { \r\n}\r\n```\r\n\r\nNow, you can inject `mongodb.Db` into your controllers:\r\n\r\n```typescript\r\nimport { Controller, Get } from '@alterior/core';\r\nimport * as mongodb from 'mongodb';\r\n\r\n@Controller()\r\nclass SampleController {\r\n    constructor(\r\n        private db : mongodb.Db\r\n    ) {\r\n    }\r\n    \r\n    @Get('/stuff')\r\n    public getStuff() {\r\n        return this.db.collection('stuff').find().toArray();\r\n    }\r\n}\r\n```\r\n\r\nYou can pass any token into `mongoProvider`, which can be used to inject multiple database connections if necessary.\r\n\r\n## Storing Sessions in MongoDB\r\n\r\nThis package also provides a connector for storing Express sessions in MongoDB using `mongo-connect`.\r\n\r\n```typescript\r\nimport * as mongodb from 'mongodb';\r\nimport { mongoProvider, mongoSession } from '@alterior/mongo';\r\n\r\n@AppOptions({\r\n\tproviders: [mongoProvider(mongodb.Db)]\r\n\tmiddleware: [mongoSession(mongodb.Db, SESSION_SECRET)]\r\n})\r\nexport class App { }\r\n```\r\n\r\nYou can then access and modify session data from your route methods. We recommend you make an interface representing your session data.\r\n\r\n```typescript\r\n\r\ninterface SessionData {\r\n\tdisplayName : string;\r\n\tcartTotal : number;\r\n}\r\n\r\n@Controller()\r\nclass SampleController {\r\n\t@Get('/cart/total') \r\n\tpublic get(session : SessionData) {\r\n\t\treturn session.cartTotal;\r\n\t} \r\n}\r\n```","maintainers":[{"email":"wilahti@gmail.com","name":"rezonant"}],"time":{"modified":"2022-06-12T14:35:55.354Z","created":"2016-09-25T01:36:59.688Z","0.0.1":"2016-09-25T01:36:59.688Z","0.0.2":"2016-09-25T07:20:06.457Z","0.0.3":"2016-09-26T01:07:44.765Z","0.0.4":"2016-09-26T01:09:46.099Z"},"homepage":"https://github.com/alterior-mvc/alterior-mongo#readme","repository":{"type":"git","url":"git+https://github.com/alterior-mvc/alterior-mongo.git"},"author":{"name":"William Lahti","email":"wilahti@gmail.com"},"bugs":{"url":"https://github.com/alterior-mvc/alterior-mongo/issues"},"license":"MIT","readmeFilename":"README.md"}