Fans

21

Votes

20

Jobs

0

Hacker News, Reddit, Stack Overflow Stats

GitHub Stats

Description

What is
Node.js?

Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

What is
MEAN?

MEAN (Mongo, Express, Angular, Node) is a boilerplate that provides a nice starting point for MongoDB, Node.js, Express, and AngularJS based applications. It is designed to give you a quick and organized way to start developing MEAN based web apps with useful modules like Mongoose and Passport pre-bundled and configured.

What is
Fat-Free?

Fat-Free Framework makes it easy to build entire Web sites in a jiffy. With the same power and brevity as modern Javascript toolkits and libraries, F3 helps you write better-looking and more reliable PHP programs.

Want advice about which of these to choose?Ask the StackShare community!

I found mean.io just smooth, fun, orginized and just work out-of-the-box.

Ease of Use
Documentation
Reliability
Support

alvirtuoso

Small but powerful

April 02, 2016 11:26

This compact framework provided me flexibility. I can implement my own design pattern either MVC or something else. What caught my attention the most was its built-in ORM that can accommodate SQL and NoSql database. That means I can have my MongoSql and SQL queries written by those compatible raw sql statements but still creates ORM models the same way as nosql. Consider for example:
$user=new DB\SQL\Mapper($db,'users');// for sql db
$user=new DB\Mongo\Mapper($db,'users'); // for mongo db
then
$user = $user->load('id = 1');

Thanks to its high modularity, I can add more fat to my liking. There's also Cortex ORM f3 extension which handles join tables.
Also, handles sessions, routing, and config with ease and let you organize them neatly.
That's just a few of the handful features without much weight and with fast performance.
One drawback is smaller community, but didn't disappoint me.

Ease of Use
Documentation
Reliability
Support

How developers use Node.js vs MEAN vs Fat-Free

The social ranking platform, Klout, used to use a PHP & LAMP stack but found it difficult to continue to scale, so when they had the chance they moved to a Node.js backend. They even wrote about switching to Node.js and how they use it. [additional source: http://blog.klout.com/2011/10/the-tech-behind-klout-com/]

The server side of Trello is built in Node.js. We knew we wanted instant propagation of updates, which meant that we needed to be able to hold a lot of open connections, so an event-driven, non-blocking server seemed like a good choice. Node also turned out to be an amazing prototyping tool for a single-page app. The prototype version of the Trello server was really just a library of functions that operated on arrays of Models in the memory of a single Node.js process, and the client simply invoked those functions through a very thin wrapper over a WebSocket. This was a very fast way for us to get started trying things out with Trello and making sure that the design was headed in the right direction. We used the prototype version to manage the development of Trello and other internal projects at Fog Creek.

We decided to move the provisioning process to an API-driven process, and had to decide among a few implementation languages:

Go, the server-side language from Google

NodeJS, an asynchronous framework in Javascript

We built prototypes in both languages, and decided on NodeJS:

NodeJS is asynchronous-by-default, which suited the problem domain. Provisioning is more like “start the job, let me know when you’re done” than a traditional C-style program that’s CPU-bound and needs low-level efficiency.

NodeJS acts as an HTTP-based service, so exposing the API was trivial

Getting into the headspace and internalizing the assumptions of a tool helps pick the right one. NodeJS assumes services will be non-blocking/event-driven and HTTP-accessible, which snapped into our scenario perfectly. The new NodeJS architecture resulted in a staggering 95% reduction in processing time: requests went from 7.5 seconds to under a second.

Used node.js server as backend. Interacts with MongoDB using MongoSkin package which is a wrapper for the MongoDB node.js driver.
It uses express for routing and cors package for enabling cors and eyes package for enhancing readability of logs.
Also I use nodemon which takes away the effort to restart the server after making changes.

For JavaScript-heavy Web sites, Node.js makes it possible to reuse the same code on both the client and the server. The evented architecture is particularly well suited for "glue" code that connects other services.

We have a SOA for our systems. It isn't quite Microservices jsut yet, but it does provide domain encapsulation for our systems allowing the leaderboards to fail without affecting the login or education content.

We've written a few internal modules including a very simple api framework.

I ended up picking Node.js because the game client is entirely in JavaScript as well. This choice made it a lot easier for developers to cross borders between being "client side" game developers and "server side" game developers. It also meant that the pool of knowledge/best practices is applicable almost across the company.

Node.js is the foundation for the server. Using Express.js for serving up web content, and sockets.io for synchronizing communications between all clients and the server, the entire game runs as Javascript in Node.js.

I don't know how well this will scale if/when I have hundreds of people connected simultaneously, but I suspect that when that time comes, it may be just a matter of increasing the hardware.

As for why I chose Node.js... I just love JavaScript! My code is all original, meaning that I didn't have to inherit anyone's bad Javascript. I'm perfectly capable of creating my own bad Javascript, thank you! Also, npm rocks!

Node.js simplifies development by letting you use a single language on the client and server. This has the added benefit of keeping your apps DRY because you can share code between them.

Its package registry, npm, is the largest of any language. With over 500,000 packages and 500+ new packages being registered every day, you can almost always find what you're looking for. And if you can't, why not make your own and share it with the world?

We use NodeJS as one of the systems for our backends. We use NodeJS primarily when working with apps that need to work in realtime or carry out many actions asynchronously. We also use NodeJS for our custom Nagios and Grafana reporting and monitoring tools.

MongoDB is a solid NoSQL store. Angular.js is being vetted as a potential front-end framework for the website (though it may ultimately not be used for the non-app site). Everything is running on node.js and hosted via an Express.js web server (though we are looking into Koa.js as it is the official successor to Express.js)