Should I learn node.js before starting with meteor? - node.js

I'm coming from a java background, And I recently needed an app with realtime data and push. So i'm thinking of using meteor since it seems as an easier way to use node.js.
My question is do I need to learn node.js before starting with meteor ?
and is meteor suitable now for a production application (I know it haven't reached 1.0, but from your experiences what do you think)
Thank you.

Meteor does not require knowing node.js in order to effectively build applications, as long as you stay within the boundaries of what Meteor abstracts away for you.
Meteor is very young, but "production-ready" depends on what exactly the application is. Would I write a real-time banking application with it right now? No. Is it ready for MVPs, demos, and straightforward consumer applications? Sure, as long as you understand its limitations.

Related

node.js suitable for small Projects

Our Customers often have Requirements for some small WebProjects, to integrate in our EnterpriseEnviroment. Currently I create those Apps with ASP.NET WebForms or MVC but this Technology often feels a little bit to heavy for this kind of purpose.
I really don´t know much about node.js, only that it scales very well and is good for having a lot of concurrent connections.
So I've asked myself:
Is node.js suitable for small Projects ?
Do I have any advantages for a small Project?
Am I right that it´s more lightweight than ASP.NET WebForms/MVC
How is the node.js support for WindowsServer? Or should I setup a LinuxBox for it?
How is the Database support in node.js ?
Does it support direct DB-Connection to MSSQL-Server?
Or is it better to get my Data from a WebService?
I know that node.js is only server-side and you can´t really compare it 100% with something like ASP.NET WebForms/MVC
Is node.js suitable for small Projects ?
Yes.
Do I have any advantages for a small Project?
Very lightweight, very modular, easy to install.
Am I right that it´s more lightweight than ASP.NET WebForms/MVC
Enormously so.
How is the node.js support for WindowsServer? Or should I setup a LinuxBox for it?
It works OK on Windows. It would probably suffice to install a Linux shell.
How is the Database support in node.js ?
Beautiful.
Does it support direct DB-Connection to MSSQL-Server?
Yes, I believe it does.
Or is it better to get my Data from a WebService?
"Better" is kind of vague, but for a very small project, simplicity is generally the key, so no.

Using node.js in a production environment

I've recently begun hearing a great deal about Node.js. While I understand a few things that it's able to do, namely create a web server, I'm wondering if you could provide me with a solid reasoning behind using this functionality in a production environment.
This article made a solid case for using Node.js as a development tool, essentially stating that it can provide the usability of a backend environment without needing backend experience. I've also heard of many developers using Node.js in production projects (Codepen for example), but I simply don't understand how it can be useful when there are established web servers out there such as a LAMP stack.
I would love to invest the time into learning about Node.js due to its growing popularity, but because I do have a fairly solid backend foundation, I'm curious if it's necessary.
In short, what are some of the most useful aspects of Node.js and why would someone need to use in a production environment?
Perhaps the best answers can come from large companies who are using Node successfully in production.
Why Walmart is using Node.js
How we build eBay's first Node.js application
How LinkedIn used Node.js and HTML5 to build a better, faster app
Scalability is often the big reason. End to end javascript is also a popular answer. Also Node is good at making some potentially complicated "real-time" scenarios almost trivial when using a library like socket.io.
And here is a list of companies using Node with a short blurb on what they use it for.
The main company behind Node.js, Joyent, is tackling this question head-on with their recent roadshow "Node on the Road". They have collected a number of interesting testimonials of why big companies (Dow Jones, Walmart, Yahoo, etc) are using node in production. Check out their videos section for more details.
At my company we use Node in production everywhere. We typically serve the static HTML and JS files using NGINX but smaller apps will use PM2, a Node process manager, to add clustering redundancy and auto restart to a project. PM2 documentation
Example of using PM2 to maximize clusters for your Node app:
pm2 start -i max myNodeServer.js

Should I use node.js for this?

My question is rather straightforward. I started developing quite a large project and realized that node.js COULD be a viable solution. Since I am still new to node and therefore not in the position to determine if it's the right thing for me, I decided to ask here.
The project: It's basically an administration solution for gameserver providers. It includes both a web administration panel as well as server components to control everything.
My doubts are if I should use node for the panel.
It will require life updating of data (where sockets could come in handy) and we plan on developing it as a "one-page" kind of app.
Having it node means it would be able to perform tasks asynchronously and on it's own (instead of, say, php and cronjobs)
It will be distributed. Making it node would make this easy. No dependencies besides node, and a simple "npm install".
It will have multiple people connecting to it and using it at the same time.
Will node be able to handle these multiple connections well? Performance wise, will it be a good choice?
Will node (and maybe Derby) suffice to build a good web panel?
Am I right about any of the points I made, or did I miss something?
Thanks for the help!
Sincerely
-Antariano
Well you did answer yourself for some of the questions. Thanks to the asynchronous tasks node can take quite a load of connections so it should handle your app. I don't know Derby, but express is also good for your task.
Also when one node server will be insufficient you can always deploy next one and just create some communication between them. Since node is lightweight it can do the job.
Will node be able to handle these multiple connections well?
Yes.
Performance wise, will it be a good choice?
Yes.
Will node (and maybe Derby) suffice to build a good web panel?
Yes.
Am I right about any of the points
You are right with all of them.
I think node will be sufficient for this job.

Decent Node.js library for server workload testing

I'm about to develop a web app so i tought i could test the workload with a single Node client since it can make multiple calls to the server without blocking.
Looking at https://github.com/joyent/node/wiki/modules, in the testing section i foun plenty of frameworks, and my question is if someone can recommend or has heard good things from any of those.
I think this is a perfectly answer question, that's why im asking it here.
Edit:
The idea is to use node on the client side not the server that serves the webapp, so profiling would be out of scope when it comes to decide what node testing framework to use.

Node.js: Socket.io + Express needed for real-time apps?

I have just began working with node.js and have gotten the hang of the basics.
Right now I'm trying to see if I can create my very first real-time web application using node, during my research I have seen modules like "express.js" and "socket.io' pop up very often as frameworks used for node web apps.
My question is; do I really need to learn these two in order to make real-time production level node.js applications?
Also, what other things should I look at? I heard about tempting engines being an asset, but 'm not sure of their use.
You don't need to use any modules but you give up a lot when you don't. Express.js is a great place to start. It has good documentation and makes the whole process much easier. I use jade and stylus for my css and templates.
Socket.io is again optional but if you are doing real-time updates it sure makes things a lot simpler. Socket.io deals with all of the browser differences with one api and the client will always connect using the fastest technology.
Socket.IO is mandatory for real-time applications. If you have to implement a chat, a broker, a server status tool or something like that and other natural real app, you must consider use this Node package. If your site do not require something real-time bi-directional message handler you just avoid the usage of this tool.
In case of all application needs to be made in real-time situation, you can see a more appropriate framework to approach it, like Meteor

Resources