
Web Development with MongoDB and Node
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Person
He is a regular on programming sites such as Stack Overflow and loves contributing to the open-source world. Apart from programming, he is also interested in experimenting with various cloud platform solutions. He has a number of applications listed in the developer spotlight of Platform-as-a-Service providers such as RedHat's OpenShift. Jason Krol is a passionate web developer with over 15 years of professional experience creating highly interactive web applications using the latest in both client and server technologies.
Over the past few years, Jason has been focusing on developing Single-Page Applications using JavaScript in the full stack with Node.js, MongoDB, and Backbone.js. After co-owning and running a successful web development agency for a number of years, Jason recently joined AWeber Communications, an e-mail marketing service provider in the suburbs of Philadelphia.
Content
- Cover
- Title Page
- Copyright
- Credits
- About the Authors
- About the Reviewer
- www.PacktPub.com
- Customer Feedback
- Table of Contents
- Preface
- Chapter 1: Welcome to JavaScript in the Full Stack
- A short introduction to Node.js
- The advantage that the V8 engine brings in
- Node.js is single-threaded!
- Non-blocking asynchronous execution
- npm - the Node Package Manager
- Sharing and reusing JavaScript
- Not just for building web servers!
- Real-time web application with Socket.io
- Networking and file IO
- Microservices
- Internet of things (IoT)
- A simple server with Node.js
- When to use Node.js
- The NoSQL movement
- A short introduction to MongoDB
- JSON-friendly database
- Schema-less design
- Various performance facets
- Node.js and MongoDB in the wild
- What to expect from this book
- Summary
- Chapter 2: Getting Up and Running
- Installing Node.js
- Mac OS X
- Windows
- Linux
- Testing that Node.js is installed properly
- Online documentation
- Installing MongoDB
- Mac OS X installation instructions
- Windows 7/Windows 8 installation instructions
- Linux installation instructions
- Confirming successful MongoDB installation
- Bookmarking the online documentation
- Writing your first app
- Creating the sample application
- Getting the dependent modules in place
- Adding the application code
- Understanding the code
- Launching the sample app
- Checking the actual database
- Summary
- Chapter 3: Node and MongoDB Basics
- A JavaScript primer
- Introducing es6
- Syntax basics
- Understanding the scope of variables
- Data types
- Operators and flows
- Understanding objects
- Understanding arrays
- Understanding functions
- Anonymous functions and callbacks
- JSON
- The basics of Node.js
- Node.js architecture
- Event-driven
- Asynchronous execution
- The module system
- The Node.js core
- HTTP
- Net
- Streams
- Installing modules using npm
- The basics of MongoDB
- The Mongo shell
- Inserting data
- Querying
- Updating data
- Deleting data
- Additional resources
- Summary
- Chapter 4: Introducing Express
- Web application frameworks
- What is Express.js?
- Building a complete web application
- Designing the web application
- Organizing the files
- Creating the application's entry point
- Booting up the application
- Middlewares
- Creating custom middleware
- Order of middlewares
- The configure module
- Activating the configure module
- Routers and controllers
- Handlebars as View engines
- Summary
- Chapter 5: Templating with Handlebars
- Templating engines
- Server-side and client-side templating
- Client-side templating
- Server-side templating
- The basics of Handlebars
- Binding an object to the template
- Embedding presentation logic
- Views
- Layouts
- Partial views
- Handlebars helpers
- Global helpers
- View-specific helpers
- Rendering the views
- Summary
- Chapter 6: Controllers and View Models
- Controllers
- View models
- Updating the home controller
- Updating the image controller
- Displaying an image
- Uploading an image
- Helpers for reusable code
- The sidebar module
- The stats module
- The images module
- The comments module
- Testing the sidebar implementation
- Iterating on the UI
- Summary
- Chapter 7: Persisting Data with MongoDB
- Using MongoDB with Node.js
- Connecting to MongoDB
- Inserting a document
- Retrieving a document
- Introducing Mongoose
- Schemas
- Models
- Built-in validation
- Static methods
- Virtual properties
- Context of method (this)
- Connecting with Mongoose
- Defining the schemas and models
- The models index file
- Adding CRUD to the controllers
- The home controller
- The image controller
- Index - retrieving an image model
- Create - inserting an image model
- Testing everything out so far
- The like button and updating an image model
- Comment - inserting a comment model
- Wrapping it up
- Helpers
- Introducing the async module
- The comments helper
- The sidebar helper
- Troubleshooting
- The stats helper
- The popular images helper
- Iterating by adding an image removal capability
- Adding a route
- Adding a controller handler
- Updating the Handlebars image page template
- Updating jQuery
- Refactoring and improvements
- Summary
- Chapter 8: Creating a RESTful API
- What is an API?
- What is a RESTful API?
- Introducing Postman REST Client
- Installation instructions
- A quick tour of Postman REST Client
- Using the JSONView Chrome extension
- Creating a basic API server
- Creating sample JSON data
- Responding to GET requests
- Receiving data - POST and PUT requests
- Removing data - DELETE
- Consuming external APIs from Node.js
- Consuming an API endpoint using request
- Summary
- Chapter 9: Testing Your Code
- The tools of the trade
- Running tests with the Mocha framework
- Asserting tests with Chai.js
- Getting started with Chai
- Spies and stubs with Sinon.js
- Stubbing node modules with Proxyquire
- Writing and running your first test
- Writing a test helper
- Testing the application
- Testing the routes
- Testing the server
- Testing a model
- Testing a controller
- Spy and stub everything!
- Automating everything
- Summary
- Chapter 10: Deploying with Cloud-Based Services
- Cloud versus traditional hosting
- Infrastructure as a Service versus Platform as a Service
- An introduction to Git
- Deploying your application
- Nodejitsu
- Heroku
- Amazon Web Services
- Creating a MongoLab account and database
- Create and configure the AWS environment
- Microsoft Azure
- Digital Ocean
- Summary
- Chapter 11: Popular Node.js Web Frameworks
- Koa
- Meteor
- Sails
- Flatiron
- total.js
- LoopBack
- Hapi
- Kick starting Hapi.js
- Scaffolding the Hapi app
- Setting up a server
- Creating APIs
- Creating a configuration-based architecture
- Summary
- Chapter 12: Single Page Applications with Popular Frontend Frameworks
- Why use a frontend framework?
- What is a single page application?
- The TodoMVC project
- Backbone.js
- Ember.js
- React.js
- Angular
- Scaffolding the Angular app
- Understanding TypeScript and es6
- Modules and components
- Angular data flow architecture
- Services
- Forms
- Component communication
- Frontend development tools
- Automated build task managers
- Dependency management
- Modularity
- HTML template-rendering engines
- CSS transpiling
- Testing and test-driven development
- PhantomJS headless browser
- Summary
- Index
System requirements
File format: PDF
Copy-Protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our eBook Help page.