Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I get started with Node.js [closed]

People also ask

How do I start and stop NodeJS?

Once the server starts listening, it will never stop until the interrupt signal or a code error crash the program. To stop your NodeJS server from running, you can use the ctrl+C shortcut which sends the interrupt signal to the Terminal where you start the server.

How do I run NodeJS app forever when console is closed?

js application locally after closing the terminal or Application, to run the nodeJS application permanently. We use NPM modules such as forever or PM2 to ensure that a given script runs continuously. NPM is a Default Package manager for Node.


You can follow these tutorials to get started

Tutorials

  • NodeSchool.io interactive lessons

  • The Art of Node (an introduction to Node.js)

  • Hello World

  • Hello World Web Server (paid)

  • Node.js guide

  • Build a blog with Node.js, express and MongoDB

  • Node.js for Beginners

  • Learn Node.js Completely and with Confidence

  • Node JS Processing Model – Single Threaded Model with Event Loop Architecture

  • RisingStack's Node Hero Series

  • Great Node.js tutorials voted by the programming community

  • Node.js Tutorial

  • 30 days of Node

Developer Sites

  • Joyent's developer site for node
  • Tutorials Teacher

Videos

  • Node Tuts (Node.js video tutorials)
  • Einführung in Node.js (in German)
  • Introduction to Node.js with Ryan Dahl
  • Node.js: Asynchronous Purity Leads to Faster Development
  • Parallel Programming with Node.js
  • Server-side JavaScript with Node, Connect & Express
  • Node.js First Look
  • Node.js with MongoDB
  • Ryan Dahl's Google Tech Talk
  • Real Time Web with Node.js
  • Node.js Tutorials for Beginners
  • Pluralsight courses (paid)
  • Udemy Learn and understand Nodejs (paid)
  • The New Boston

Screencasts

  • Learn All The Nodes
  • Node Tuts
  • Einführung in Node.js (in German)
  • NodeCasts

Books

  • The Node Beginner Book
  • Mastering Node.js
  • Up and Running with Node.js
  • Node.js in Action
  • Smashing Node.js: JavaScript Everywhere
  • Node.js & Co. (in German)
  • Sam's Teach Yourself Node.js in 24 Hours
  • Most detailed list of free JavaScript Books
  • Mixu's Node Book
  • Node.js the Right Way: Practical, Server-Side JavaScript That Scale
  • Beginning Web Development with Node.js
  • Node Web Development
  • NodeJS for Righteous Universal Domination!

Courses

  • Real Time Web with Node.js
  • Essential Node.js from DevelopMentor
  • Freecodecamp - Learn to code for free
  • Udemy - The Complete Node.js Developer Course (3rd Edition) (paid)

Blogs

  • The Node.js blog
  • How To Node
  • DailyJS
  • Nodejitsu blog
  • Ryan Wilcox's Whitepaper
  • devthought

Podcasts

  • NodeUp

JavaScript resources

  • Crockford's videos (must see!)
  • Essential JavaScript Design Patterns For Beginners
  • JavaScript garden
  • JavaScript Patterns book
  • JavaScript: The Good Parts book
  • Eloquent javascript book

Node.js Modules

  • Search for registered Node.js modules
  • A curated list of awesome Node.js libraries
  • Wiki List on GitHub/Joyent/Node.js (start here last!)

Other

  • JSApp.US - like jsfiddle, but for Node.js
  • Node with VJET JS (for Eclipse IDE)
  • Production sites with published source:
    • Node Knockout Hackathon (source)
    • Freecodecamp - Learn to code for free (source)
  • Useful Node.js Tools, Tutorials and Resources
  • Runnable.com - like jsfiddle, but for server side as well
  • Getting Started with Node.js on Heroku
  • Getting Started with Node.js on Open-Shift
  • Authentication using Passport

First, learn the core concepts of Node.js:

  • You'll want to understand the asynchronous coding style that Node.js encourages.

  • Async != concurrent. Understand Node.js's event loop!

  • Node.js uses CommonJS-style require() for code loading; it's probably a bit different from what you're used to.

  • Familiarize yourself with Node.js's standard library.

Then, you're going to want to see what the community has to offer:

The gold standard for Node.js package management is NPM.

  • It is a command line tool for managing your project's dependencies.

  • Make sure you understand how Node.js and NPM interact with your project via the node_modules folder and package.json.

  • NPM is also a registry of pretty much every Node.js package out there

Finally, you're going to want to know what some of the more popular packages are for various tasks:

Useful Tools for Every Project:

  • Underscore contains just about every core utility method you want.
  • Lo-Dash is a clone of Underscore that aims to be faster, more customizable, and has quite a few functions that underscore doesn't have. Certain versions of it can be used as drop-in replacements of underscore.
  • TypeScript makes JavaScript considerably more bearable, while also keeping you out of trouble!
  • JSHint is a code-checking tool that'll save you loads of time finding stupid errors. Find a plugin for your text editor that will automatically run it on your code.

Unit Testing:

  • Mocha is a popular test framework.
  • Vows is a fantastic take on asynchronous testing, albeit somewhat stale.
  • Expresso is a more traditional unit testing framework.
  • node-unit is another relatively traditional unit testing framework.
  • AVA is a new test runner with Babel built-in and runs tests concurrently.

Web Frameworks:

  • Express.js is by far the most popular framework.
  • Koa is a new web framework designed by the team behind Express.js, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs.
  • sails.js the most popular MVC framework for Node.js, and is based on express. It is designed to emulate the familiar MVC pattern of frameworks like Ruby on Rails, but with support for the requirements of modern apps: data-driven APIs with a scalable, service-oriented architecture.
  • Meteor bundles together jQuery, Handlebars, Node.js, WebSocket, MongoDB, and DDP and promotes convention over configuration without being a Ruby on Rails clone.
  • Tower (deprecated) is an abstraction of a top of Express.js that aims to be a Ruby on Rails clone.
  • Geddy is another take on web frameworks.
  • RailwayJS is a Ruby on Rails inspired MVC web framework.
  • Sleek.js is a simple web framework, built upon Express.js.
  • Hapi is a configuration-centric framework with built-in support for input validation, caching, authentication, etc.
  • Trails is a modern web application framework. It builds on the pedigree of Rails and Grails to accelerate development by adhering to a straightforward, convention-based, API-driven design philosophy.

  • Danf is a full-stack OOP framework providing many features in order to produce a scalable, maintainable, testable and performant applications and allowing to code the same way on both the server (Node.js) and client (browser) sides.

  • Derbyjs is a reactive full-stack JavaScript framework. They are using patterns like reactive programming and isomorphic JavaScript for a long time.

  • Loopback.io is a powerful Node.js framework for creating APIs and easily connecting to backend data sources. It has an Angular.js SDK and provides SDKs for iOS and Android.

Web Framework Tools:

  • Jade is the HAML/Slim of the Node.js world
  • EJS is a more traditional templating language.
  • Don't forget about Underscore's template method!

Networking:

  • Connect is the Rack or WSGI of the Node.js world.
  • Request is a very popular HTTP request library.
  • socket.io is handy for building WebSocket servers.

Command Line Interaction:

  • minimist just command line argument parsing.
  • Yargs is a powerful library for parsing command-line arguments.
  • Commander.js is a complete solution for building single-use command-line applications.
  • Vorpal.js is a framework for building mature, immersive command-line applications.
  • Chalk makes your CLI output pretty.

Code Generators:

  • Yeoman Scaffolding tool from the command-line.
  • Skaffolder Code generator with visual and command-line interface. It generates a customizable CRUD application starting from the database schema or an OpenAPI 3.0 YAML file.

Work with streams:

  • mississipi everything you miss about streams.
  • https://github.com/calvinmetcalf/streams-a-love-story
  • http://maxogden.com/node-streams.html
  • https://github.com/substack/stream-handbook
  • How streams help to raise Node.js performance

Use the source, Luke.

No, but seriously I found that building Node.js from source, running the tests, and looking at the benchmarks did get me on the right track. From there, the .js files in the lib directory are a good place to look, especially the file http.js.

Update: I wrote this answer over a year ago, and since that time there has an explosion in the number of great resources available for people learning Node.js. Though I still believe diving into the source is worthwhile, I think that there are now better ways to get started. I would suggest some of the books on Node.js that are starting to come out.