Ask HN: What is your Node.js & MongoDB development setup & procedures?
Please, share the setup for static resources used by your team (Build Server, Staging server etc.) as well as the setup every new developer needs to do when coming to the team (installs, configurations etc).
It's great if you can share whatever wisdom you consider "hard to get on your own" about the development procedures (unit and integration testing, linting/hint-ing) with these particular technologies.
If you are willing to go into some details about important topics such as deployment and scaling strategies, this will be cool as well.
What front-end frameworks do you use for your web applications using your Node backend (AngularJS, Ember.JS etc)?
Links to other resources are also great.
Thanks for taking the time to share your mastery. I hope this will turn into a great online resource for devs just starting to use NodeJS & MongoDB.
10 comments
[ 4.5 ms ] story [ 29.4 ms ] threadDoes anyone use the MEAN stack: mongoDB, ExpressJS, AngularJS and NodeJS?
http://blog.mongodb.org/post/49262866911/the-mean-stack-mong...
I am starting a project and currently I am leaning towards NodeJS with Express and MongoDB on the server-side and RequireJS(or WireJS) and Knockout on the client side. I intend to use QUnit for the client app's testing, but have no idea what should I use for Node testing (unit and load/stress). Since it will be just me, I will probably setup Jenkins on my own machine for a build server. I am currently using appfog for staging/testing.
That's pretty much it. (My project includes a mobile part as well, but I guess this is outside of the scope of this discussion, so I wont get into that.)
I will definitely give it a try.
nginx as a load balancer (running 4 node processes on different ports as upstart scripts with respawn) and for serving static files.
Express + Jade (but I do most of the things on the client - calling REST API)
redis as a session store: https://github.com/visionmedia/connect-redis
DB - MongoDb (I also use Mongoose: http://mongoosejs.com/)
I also host most of the static resources on S3 and they are served through CloudFront CDN. At first I used this module (for easier deploying the resources to S3): https://github.com/niftylettuce/express-cdn but later I had to rewrite most of the things to handle my specific requirements (using knox).
Tests (client and server side): Mocha + sinon + chai
CSS: Less + less-middleware
JS: UglifyJS + express-uglify
I'm also running a worker process and a scheduler process. For communication between the worker, web and scheduler processes - RabbitMQ.
Deploying everything with git push in master (custom github post push hook). No build server. Have nothing to build.
Client side: jQuery (of course) + AngularJS + custom code for bootstrapping the SPA.
KnockoutJS - Naaw.
Hope this info helps.
P.S. Authentication: http://passportjs.org/
It's only me working on this so I run the tests before each push but I guess running the tests on the staging env will be like a few more lines of code. I s'pose at some point I'd want to keep test results and I'll need a build server. May be.
Forgot to say that I also deploy everything on heroku (for free) as a staging environment (before pushing to production).
heroku + mongolab + redis to go.
ah yes, and new relic for monitoring what's happening on live.
Brunch comes with its own small express push-server to get you going, but it can be replaced by overriding the startServer function and going from there.
For auth, passport.