Get Programming with Node.js Get Programming with Node.js teaches you to write server-side code in JavaScript using Node.js. In 37 fast-paced, fun, and practical lessons, you'll discover how to extend your existing JavaScript skills to write back-end code for your web applications.
About the technology
Node.js delivers the speed and reliability you need for ecommerce, social media, and gaming applications. It comes with thousands of prebuilt packages to help you get started immediately. If you want to use JavaScript on the server, Node.js is your choice.
About the book
Get Programming with Node.js teaches you to build web servers using JavaScript and Node. In this engaging tutorial, you’ll work through eight complete projects, from writing the code for your first web server to adding live chat to a web app. Your hands will stay on the keyboard as you explore the most important aspects of the Node development process, including security, database management, authenticating user accounts, and deploying to production. You’ll especially appreciate the easy-to-follow discussions, illuminating diagrams, and carefully explained code!
- Title
- Get Programming with Node.js
- Publisher
- Manning
- Author(s)
- Jonathan Wexler
- Published
- 2019-04-18
- Edition
- 1
- Format
- eBook (pdf, epub, mobi)
- Pages
- 480
- Language
- English
- ISBN-10
- 1617294748
- ISBN-13
- 9781617294747
- License
- Read online for free
- Book Homepage
- Free eBook, Errata, Code, Solutions, etc.
Copyright Brief Table of Contents Table of Contents Foreword Preface Acknowledgments About this book About the author Unit 0. Getting set up Lesson 0. Setting up Node.js and the JavaScript engine 0.1. What you’re going to learn 0.2. Understanding Node.js 0.3. Why learn to develop in Node.js? 0.4. Preparing yourself for this book Summary Lesson 1. Configuring your environment 1.1. Installing Node.js 1.2. Installing a text editor 1.3. Setting up SCM and deployment tools 1.4. Working with the Node.js REPL in terminal Summary Lesson 2. Running a Node.js application 2.1. Creating a JavaScript file 2.2. Running your JavaScript file with Node.js 2.3. Running individual JavaScript commands Summary Unit 1. Getting started with Node.js Lesson 3. Creating a Node.js module 3.1. Running npm commands 3.2. Initializing a Node.js application Summary Lesson 4. Building a simple web server in Node.js 4.1. Understanding web servers 4.2. Initializing the application with npm 4.3. Coding the application 4.4. Running the application Summary Lesson 5. Handling incoming data 5.1. Reworking your server code 5.2. Analyzing request data 5.3. Adding routes to a web application Summary Lesson 6. Writing better routes and serving external files 6.1. Serving static files with the fs module 6.2. Serving assets 6.3. Moving your routes to another file Summary Lesson 7. Capstone: Creating your first web application 7.1. Initializing the application 7.2. Understanding application directory structure 7.3. Creating main.js and router.js 7.4. Creating views 7.5. Adding assets 7.6. Creating routes Summary Unit 2. Easier web development with Express.js Lesson 8. Setting up an app with Express.js 8.1. Installing the Express.js package 8.2. Building your first Express.js application 8.3. Working your way around a web framework Summary Lesson 9. Routing in Express.js 9.1. Building routes with Express.js 9.2. Analyzing request data 9.3. Using MVC Summary Lesson 10. Connecting views with templates 10.1. Connecting a templating engine 10.2. Passing data from your controllers 10.3. Setting up partials and layouts Summary Lesson 11. Configurations and error handling 11.1. Modifying your start script 11.2. Handling errors with Express.js 11.3. Serving static files Summary Lesson 12. Capstone: Enhancing the Confetti Cuisine site with Express.js 12.1. Initializing the application 12.2. Building the application 12.3. Adding more routes 12.4. Routing to views 12.5. Serving static views 12.6. Passing content to the views 12.7. Handling the errors Summary Unit 3. Connecting to a database Lesson 13. Setting up a MongoDB Database 13.1. Setting up MongoDB 13.2. Running commands in the MongoDB shell 13.3. Connecting MongoDB to your application Summary Lesson 14. Building models with Mongoose 14.1. Setting up Mongoose with your Node.js application 14.2. Creating a schema 14.3. Organizing your models Summary Lesson 15. Connecting Controllers and Models 15.1. Creating a controller for subscribers 15.2. Saving posted data to a model 15.3. Using promises with Mongoose Summary Lesson 16. Capstone: Saving user subscriptions 16.1. Setting up the database 16.2. Modeling data 16.3. Adding subscriber views and routes Summary Unit 4. Building a user model Lesson 17. Improving Your Data Models 17.1. Adding validations on the model 17.2. Testing models in REPL 17.3. Creating model associations 17.4. Populating data from associated models Summary Lesson 18. Building the user model 18.1. Building the user model 18.2. Adding CRUD methods to your models 18.3. Building the index page 18.4. Cleaning up your actions Summary Lesson 19. Creating and reading your models 19.1. Building the new user form 19.2. Creating new users from a view 19.3. Reading user data with show Summary Lesson 20. Updating and Deleting your Models 20.1. Building the edit user form 20.2. Updating users from a view 20.3. Deleting users with the delete action Summary Lesson 21. Capstone: Adding CRUD Models to Confetti Cuisine 21.1. Getting set up 21.2. Building the models 21.3. Creating the views 21.4. Structuring routes 21.5. Creating controllers Summary Unit 5. Authenticating user accounts Lesson 22. Adding sessions and flash messages 22.1. Setting up flash message modules 22.2. Adding flash messages to controller actions Summary Lesson 23. Building a user login and hashing passwords 23.1. Implementing the user login form 23.2. Hashing passwords 23.3. Adding validation middleware with express-validator Summary Lesson 24. Adding User Authentication 24.1. Implementing Passport.js 24.2. Modifying the create action to use passport registration 24.3. Authenticating users at login Summary Lesson 25. Capstone: Adding User Authentication to Confetti Cuisine 25.1. Getting set up 25.2. Creating a login form 25.3. Adding encryption with Passport.js 25.4. Adding flash messaging 25.5. Adding validation middleware with express-validator 25.6. Adding authentication with Passport.js 25.7. Logging in and out Summary Unit 6. Building an API Lesson 26. Adding an API to Your Application 26.1. Organizing your routes 26.2. Creating an API 26.3. Calling your API from the client Summary Lesson 27. Accessing Your API from Your Application 27.1. Applying an API namespace 27.2. Joining courses via modal 27.3. Creating an API endpoint to connect models Summary Lesson 28. Adding API Security 28.1. Implementing simple security 28.2. Adding API tokens 28.3. Using JSON web tokens Summary Lesson 29. Capstone: Implementing an API 29.1. Restructuring routes 29.2. Adding the courses partial 29.3. Creating the AJAX function 29.4. Adding an API endpoint 29.5. Creating an action to enroll users Summary Unit 7. Adding chat functionality Lesson 30. Working with Socket.Io 30.1. Using socket.io 30.2. Creating a chat box 30.3. Connecting the server and client Summary Lesson 31. Saving Chat Messages 31.1. Connecting messages to users 31.2. Displaying user names in chat 31.3. Creating a message model Summary Lesson 32. Adding a Chat Notification Indicator 32.1. Broadcasting to all other sockets 32.2. Creating a chat indicator in navigation Summary Lesson 33. Capstone: Adding a Chat Feature to Confetti Cuisinex 33.1. Installing socket.io 33.2. Setting up socket.io on the server 33.3. Setting up socket.io on the client 33.4. Creating a Message model 33.5. Loading messages on connection 33.6. Setting up the chat icon Summary Unit 8. Deploying and managing code in production Lesson 34. Deploying your application 34.1. Preparing for deployment 34.2. Deploying your application 34.3. Setting up your database in production Summary Lesson 35. Managing in production 35.1. Loading seed data 35.2. Linting 35.3. Debugging your application Summary Lesson 36. Testing your application 36.1. Basic testing with core modules 36.2. Testing with mocha and chai 36.3. Testing with a database and server Summary Lesson 37. Capstone: Deploying Confetti Cuisine 37.1. Linting and logging 37.2. Preparing for production 37.3. Deploying to Heroku 37.4. Setting up the database 37.5. Debugging in production Summary Appendix A. JavaScript syntax introduced in ES6 A.1. New in ES6 A.2. REPL Summary Appendix B. Logging and using Node.js global objects B.1. Logging B.2. Global objects Index List of Figures List of Tables List of Listings