Tags: Node.JS
Have you heard about Node.js, but aren't sure what it is? Maybe you know about this exciting new software development platform, Node.js, but don't know where to start learning it? Maybe someone told you Node.js is JavaScript for server-side environments, which left you extremely confused? Or maybe you've never heard of server-side-JavaScript, and think JavaScript only runs inside web pages? The following resources will help you learn how to develop in JavaScript not inside a web browser, but on the server, using the Node.js platform.
Node.js is an exciting new platform for developing web applications, application servers, any sort of network server or client, and general purpose programming. It is designed for extreme scalability in networked applications through an ingenious combination of server-side JavaScript, asynchronous I/O, and asynchronous programming. Its claimed that the event-driven architecture gives a low memory footprint, high throughput, a better latency profile under load, and a simpler programming model. All this makes it an attractive platform for web application development.
By supporting JavaScript on the server it means software teams can share code and ideas and methodologies between front-end and back-end. By living in the same programming language they'll speak the same language to each other, have an easier time sharing data structures, use many of the same tools, and have a similar mindset.
There is tremendous excitement about Node.js, and it's already widely used in production websites. Which, obviously, may be why you're here. You want to learn about developing software with the Node.js platform. Read on.
Introductory
Node.JS Web Development - Fourth Edition
An excellent introduction to web application development in Node.js. It takes you from zero knowledge (assuming you have basic skills in programming, HTML and JavaScript), and takes you all the way to a pseudo-real-time chat application running between browsers, and writing unit testing. Along the way you learn about user authentication using Passport, application deployment on real servers using Docker, unit testing and a whole bunch of other stuff. The intent is to show you the full lifecycle of Node.js application development, and to give you a solid grasp of every aspect. The focus is on typical web applications, where there are web pages being displayed in a browser, and on using the Express framework.
NOTE -- I am the author of this book.
Node.js 8 the Right Way: Practical, Server-Side JavaScript That Scales
This updated book takes a different approach than building a web app with express. Instead it looks at asynchronous programming, file handling, socket programming, creating RESTful web services, messaging with ZeroMQ, using Elasticsearch and REDIS databases. By requiring Node.js 8, this book uses the latest ES6 features.
Node.js in Action
An example-driven tutorial on Node.js software development. It covers not just web application development, but asynchronous programming, data storage, and output templating, and interact with the filesystem to create non-HTTP applications like TCP/IP servers and command-line tools. Some of the authors are core contributors to Node.js.
Web Development with Node and Express: Leveraging the JavaScript Stack
Focusing on Express 4.0 because it "strikes a balance between a robust framework and no framework at all," this book walks you through developing applications with MongoDB, Node and Express. It talks about document databases, debugging techniques, RESTful API's, authentication, authorization, HTTPS, etc.
UDEMY: The Complete Node JS Developer Course
Teaching you to build Node.js apps from scratch by walking you through the implementation of four different applications. The course is comprised of over 18 hours of video spread out over 150 videos. You'll explore popular Node JS 3rd party modules like Express, Sequelize, and others. You'll also learn how to host your code on GitHub and deploy it live on Heroku!
UDEMY: Learn Nodejs by building 10 projects
Take an hands-on in-depth tour of developing Node.js applications, by building applications. You'll receive over 86 lectures and 18.5 hours of content. The projects are:
- Project 1 - Simple Web Server
- Project 2 - Basic Express Website
- Project 3 - User Login System
- Project 4 - Node Blog Systems
- Project 5 - Community Events
- Project 6 - BookStore
- Project 7 - Chat IO
- Project 8 - Doctor Directory
- Project 9 - Portfolio App
- Project 10 - Elearning System
UDEMY: Advanced Node.js Development
This course focuses on application developing using the AJAX model. That's an acronym for Asynchronous Javascript and XML, which relies on the browser page sending an asynchronous request to server-side code, and getting responses in XML. However, this course uses JSON rather than XML so shouldn't this be called AJAJ? User authentication is demonstrated with PassportJS.
UDEMY: All about Node.js | From the Ground Up and More
This course takes you from the beginning, showing you how to build a Node.js application and deploy it to the cloud. The applications are -
ChatCAT - A multi-room chat application of a type which would be useful for Chat Servers, Gaming Servers, Collaborative Tools etc. You'll learn about Websockets, Structuring your App in an efficient manner, creating and using development & production configurations, Authentication using Facebook, Setting up an App on Facebook, Managing Sessions, Querying & Using a Hosted MongoDB Database, and more.
PhotoGRID - This app lets users upload images into a gallery with the ability to vote on images they like. Users upload images, they're resized into thumbnails, and stored in Amazon S3 buckets. You'll learn about managing file uploads using NodeJS & AJAX, Resizing Images on the Server, Accessing & Storing files in an S3 Bucket, Querying & Using a Hosted MongoDB Database, Using Amazon's Elastic IP Service & Cloudfront distribution.
The course has been expanded a couple times, and includes a section on ES-2015 features. You'll get a free eBook on ES-2015 features.
UDEMY: NodeJS in Action
This is another advanced course, showing how to integrate a broad range of technology to create a complete application stack. The technologies used in this course include
Elasticsearch - Provides full text search mechanism to your application.
MongoDB - Store your data in to db, and make json queries to this document based database
PassportJS - You will also learn PassportJS to construct authentication system in your application. You will be able to restrict some endpoints by using internal PassportJS properties
ExpressJS - ExpressJS is for developing controllers, communicate this controllers with views, and provide some db interactions by using ORM frameworks like MongooseJS
IronCache - You can cache your data to IronCache (Cache as a service).
IronMQ - Message queue system.
SocketIO - Converting your application into realtime application
Web Development with MongoDB and Node - Third Edition: Build fast web applications for handling any kind of data
Updated for ES6 constructs in Node.js 8, this book focuses on MongoDB with Node.js. You will develop Express applications using the Handlebars templating engine, and use both straight MongoDB and the Mongoose ORM to persist data.
Felix's Node.js Guide - http://nodeguide.com/ - A terse on-line introduction to Node.js. The examples are just some bones, with no meat, of understanding required to be proficient with the Node platform.
Node Beginner - http://www.nodebeginner.org/ - a one-page website that shows the basic bones of a Node.js web application, and also serves as a sales pitch to buy a bundle of books.
TUTS+ Tutorials on Node.js - http://code.tutsplus.com/categories/nodejs
Ryan Dahl, the originator of Node.js, gave a very good video presentation of the principles and value - http://www.youtube.com/watch?v=jo_B4LTHi3I
Node.js requires an asynchronous coding model, and most programmers need to twist their head sideways to grok the best patterns. These blog posts help: http://blog.shinetech.com/2011/08/26/asynchronous-code-design-with-node-js/ and http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/
The Node.js standard library has very good documentation online - http://nodejs.org/api/index.html
The MERN stack - MongoDB, Express, React and Node.js
Pro MERN Stack: Full Stack Web App Development with Mongo, Express, React, and Node
Learn to use the popular React application framework on what would otherwise be a MEAN stack, MongoDB, Express and Node.js coupled with React. The book shows the React Way, and how to get the best out of React, while teaching MongoDB, Express and Node.js. Other React tools are shown such as React-Bootstrap and the React Router. The goal is to explore building single-page-applications using React.
The MEAN stack - MongoDB, Express, AngularJS and Node.js
Where PHP/Python/etc have the LAMP stack, the Node.js community developed the MEAN stack. That stands for: M=MongoDB as a document oriented NoSQL database, E=Express as the application framework that isn't a framework, A=AngularJS for the front end, and N=Node.js on the server. MongoDB, Express, AngularJS, Node.js === MEAN Stack. Cool technologies for agile programming.
MEAN Web Development
Use the MEAN stack to implement applications. Passport is used for authentication, and Mongoose is used on top of MongoDB.
UDEMY: Learn and Understand NodeJS
A comprehensive video course at Udemy, with over 11 hours of video covering the MEAN Stack. Topics covered include -
- Node.js internals
- Express app development
- Node.js/npm modules, and npm usage
- Asynchronous coding
- Databases, especially MongoDB
- A brief overview of AngularJS
Write Modern Web Apps with the MEAN Stack: Mongo, Express, AngularJS, and Node.js (Develop and Design)
Complete cradle-to-finished-product development of applications using the MEAN stack. Covers how web application development is changing, how to install and use each of the tools, and finally walks through creating a complete applicaton.
Node.js, MongoDB, and AngularJS Web Development (Developer's Library)
Node.js, MongoDB, and AngularJS are one of the triumvirate's of the modern programming toolsets. Node.js we've already talked about, MongoDB is a leading NoSQL document-oriented database, and AngularJS is a leading framework for MVC-based front-end application development. In other words, this book focuses squarely on web applications, using the most modern tools available.
Node.js Programming - advanced
Practical Node.js: Building Real-World Scalable Web Apps
This book assumes you have some familiarity with Node.js, and want to deepen your knowledge. It covers the Express.js and Hapi frameworks, the MongoDB database with Mongoskin and Mongoose, Jade and Handlebars template engines, Stylus and LESS CSS languages, OAuth and Everyauth libraries, and the Socket.IO and Derby libraries, and everything in between. It also covers real world deployment techniques for hosting providers like Heroku and AWS.
Node.js Recipes: A Problem-Solution Approach (Expert's Voice in Web Development)
Written in a problem/solution cookbook format, this book shows you "recipes" to solve every-day problems in Node.js programming. It's a great reference for problems you run into, rather than an introductory book.
UDEMY: Build a REST API with node.js, ExpressJS, and MongoDB
Written in a problem/solution cookbook format, this book shows you "recipes" to solve every-day problems in Node.js programming. It's a great reference for problems you run into, rather than an introductory book.
Mastering Node.js - Second Edition: Build robust and scalable real-time server-side web applications efficiently
Updated for ES6 constructs in Node.js 9, this book covers a broad range of Node.js topics. This includes using Streams and WebSockets for inter-process communication, developing desktop applications using Electron, serverless applications on AWS Lambda, and more.
Node.js tools
Automate with Grunt: The Build Tool for JavaScript
Grunt is being used everywhere as the build tool for all kinds of applications. For example jQuery and Twitter's Bootstrap use Grunt to build code, run tests, etc. While Grunt comes from the Node.js world, many non-Node.js teams use it as their build tool. This book covers the full gamut of using Grunt from configuring the pre-existing tasks, to writing your own tasks.
Getting Started with Grunt: The JavaScript Task Runner
Grunt is the equivalent to "make" or "ant" for the Node.js platform, making it very important to understand its usage. The book first shows you how to install, configure, and run Grunt, then use 3rd party Grunt tools, and finally how to implement your own Grunt tasks fitting your needs. Along the way you experience an excellent walkthrough of the Node.js ecosystem.
UDEMY: GRUNT js: Automate web development tasks and save your time
Your time is valuable, and it's best to automate everything you can. Grunt is an excellent tool for that purpose, and this 2 hour video course will get you up and running with Grunt. This Grunt.js course is meant for people who are familiar with HTML, CSS and Javascript. No prior knowdlege about Grunt.js/Node.js/npm is needed. Everything is described from the beginning. The focus is on its use in website design/development work.