MTU Cork Library Catalogue

Syndetics cover image
Image from Syndetics

Web development with Node and Express [electronic book] / Ethan Brown.

By: Brown, Ethan, 1975- [author].
Material type: materialTypeLabelBookPublisher: Sebastopol, CA : O'Reilly, [2014]Copyright date: ©2014Description: online resource (xx, 306 pages) : illustrations.Content type: text Media type: computer Carrier type: online resourceISBN: 9781491949306 (paperback); 1491949309 (paperback); 9781491902301 (e-book); 1491902302 (e-book).Subject(s): Node.js | EXPRESS (Computer program language) | JavaScript (Computer program language) | Software frameworks | Web applications | Web site developmentAdditional physical formats: Print version: Web development with Node and ExpressDDC classification: 006.76 Online resources: E-book Also available in print form.
Contents:
Introducing Express -- Getting started with Node -- Saving time with Express -- Tidying up -- Quality assurance -- The request and response objects -- Templating with handlebars -- Form handling -- Cookies and sessions -- Middleware -- Sending email -- Production concerns --Persistence -- Routing -- REST APIs and JSON -- Static content -- Implementing MVC in Express -- Security -- Integrating with Third-Party APIs -- Debugging -- Going live -- Maintenance -- Additional resources.
List(s) this item appears in: E-BOOK LIST
Holdings
Item type Current library Call number Status Date due Barcode Item holds
e-BOOK MTU Bishopstown Library eBook 006.76 (Browse shelf(Opens below)) Not for loan
Total holds: 0

Enhanced descriptions from Syndetics:

Learn how to build dynamic web applications with Express, a key component of the Node/JavaScript development stack. In this hands-on guide, author Ethan Brown teaches you the fundamentals through the development of a fictional application that exposes a public website and a RESTful API. You'll also learn web architecture best practices to help you build single-page, multi-page, and hybrid web apps with Express.

Express strikes a balance between a robust framework and no framework at all, allowing you a free hand in your architecture choices. With this book, frontend and backend engineers familiar with JavaScript will discover new ways of looking at web development.

Create webpage templating system for rendering dynamic data Dive into request and response objects, middleware, and URL routing Simulate a production environment for testing and development Focus on persistence with document databases, particularly MongoDB Make your resources available to other programs with RESTful APIs Build secure apps with authentication, authorization, and HTTPS Integrate with social media, geolocation, and other third-party services Implement a plan for launching and maintaining your app Learn critical debugging skills

This book covers Express 4.0.

Subtitle on cover: Leveraging the Javascript stack.

Includes bibliographical references and index.

Introducing Express -- Getting started with Node -- Saving time with Express -- Tidying up -- Quality assurance -- The request and response objects -- Templating with handlebars -- Form handling -- Cookies and sessions -- Middleware -- Sending email -- Production concerns --Persistence -- Routing -- REST APIs and JSON -- Static content -- Implementing MVC in Express -- Security -- Integrating with Third-Party APIs -- Debugging -- Going live -- Maintenance -- Additional resources.

CIT Module COMP 8005 - Core reading.

Also available in print form.

Electronic reproduction.: ProQuest LibCentral. Mode of access: World Wide Web.

Table of contents provided by Syndetics

  • Foreword (p. xiii)
  • Preface (p. xv)
  • 1 Introducing Express (p. 1)
  • The JavaScript Revolution (p. 1)
  • Introducing Express (p. 2)
  • A Brief History of Express (p. 4)
  • Upgrading to Express 4.0 (p. 4)
  • Node: A New Kind of Web Server (p. 5)
  • The Node Ecosystem (p. 6)
  • Licensing (p. 7)
  • 2 Getting Started with Node (p. 9)
  • Getting Mode (p. 9)
  • Using the Terminal (p. 10)
  • Editors (p. 11)
  • npm (p. 12)
  • A Simple Web Server with Node (p. 15)
  • Hello World (p. 14)
  • Event-Driven Programming (p. 14)
  • Routing (p. 15)
  • Serving Static Resources (p. 15)
  • Onward to Express (p. 17)
  • 3 Saving Time with Express (p. 19)
  • Scaffolding (p. 19)
  • The Meadowlark Travel Website (p. 20)
  • Initial Steps (p. 20)
  • Views and Layouts (p. 24)
  • Static Files and Views (p. 26)
  • Dynamic Content in Views (p. 27)
  • Conclusion (p. 28)
  • 4 Tidying Up (p. 29)
  • Best Practices (p. 29)
  • Version Control (p. 30)
  • How to Use Git with This Book (p. 31)
  • If You're Following Along by Doing It Yourself (p. 31)
  • If You're Following Along by Using the Official Repository (p. 32)
  • npm Packages (p. 33)
  • Project Metadata (p. 34)
  • Node Modules (p. 34)
  • 5 Quality Assurance (p. 37)
  • QA: Is ft Worth It? (p. 38)
  • Logic Versus Presentation (p. 39)
  • The Types of Tests (p. 39)
  • Overview of QA Techniques (p. 40)
  • Running Your Server (p. 40)
  • Page Testing (p. 41)
  • Cross-Page Testing (p. 44)
  • Logic Testing (p. 47)
  • Linking (p. 48)
  • Link Checking (p. 49)
  • Automating with Grunt (p. 49)
  • Continuous Integration (CI) (p. 52)
  • 6 The Request and Response Objects (p. 53)
  • The Parts of a URL (p. 53)
  • HTTP Request Methods (p. 54)
  • Request Headers (p. 55)
  • Response Headers (p. 55)
  • Internet Media Types (p. 56)
  • Request Body (p. 56)
  • Parameters (p. 57)
  • The Request Object (p. 57)
  • The Response Object (p. 59)
  • Getting More Information (p. 60)
  • Roiling It Down (p. 61)
  • Rendering Content (p. 61)
  • Processing Forms (p. 63)
  • Providing an API (p. 64)
  • 7 Templating with Handlebars (p. 67)
  • There Are No Absolute Rules Except This One (p. 68)
  • Choosing a Template Engine (p. 69)
  • Jade: A Different Approach (p. 69)
  • Handlebars Basics (p. 7)
  • Comments (p. 72)
  • Blocks (p. 72)
  • Server-Side Templates (p. 74)
  • Views and Layouts (p. 74)
  • Using Layouts (or Not) in Express (p. 76)
  • Partials
  • Sections (p. 79)
  • Perfecting Your Templates (p. 80)
  • Client-Side Handlebars (p. 31)
  • Conclusion (p. 83)
  • 8 Form Handling (p. 85)
  • Sending Client Data to the Server (p. 85)
  • HTML Forms (p. 85)
  • Encoding (p. 86)
  • Different Approaches to Form Handling (p. 87)
  • Form Handling with Express (p. 89)
  • Handling AJAX Forms (p. 90)
  • File Uploads (p. 93)
  • jQuery File Upload (p. 95)
  • 9 Cookies and Sessions (p. 99)
  • Externalizing Credentials (p. 100)
  • Cookies in Express (p. 101)
  • Examining Cookies (p. 103)
  • Sessions (p. 103)
  • Memory Stores (p. 103)
  • Using Sessions (p. 104)
  • Using Sessions to Implement Flash Messages (p. 105)
  • What to Use Sessions For (p. 106)
  • 10 Middleware (p. 109)
  • Common Middleware (p. 114)
  • Third Party Middleware (p. 116)
  • 11 Sending Email (p. 117)
  • SMTP, MSAs, and MTAs (p. 117)
  • Receiving Email (p. 118)
  • Email Headers (p. 118)
  • Email Formats (p. 119)
  • HTML Email (p. 119)
  • Nodemailer (p. 120)
  • Sending Mail (p. 121)
  • Sending Mail to Multiple Recipients (p. 121)
  • Better Options for Bulk Email (p. 122)
  • Sending HTML Email (p. 122)
  • Images in HTML Email (p. 123)
  • Using Views to Send HTML Email (p. 124)
  • Encapsulating Email Functionality (p. 126)
  • Email as a Site Monitoring Tool (p. 127)
  • 12 Production Concerns (p. 129)
  • Execution Environments (p. 129)
  • Environment-Specific Configuration (p. 130)
  • Scaling Your Website (p. 131)
  • Scaling Out with App Clusters (p. 132)
  • Handling Uncaught Exceptions (p. 135)
  • Scaling Out with Multiple Servers (p. 138)
  • Monitoring Your Website (p. 139)
  • Third-Party Uptime Monitors (p. 139)
  • Application Failures (p. 140)
  • Stress Testing (p. 140)
  • 13 Persistence (p. 143)
  • Filesystem Persistence (p. 143)
  • Cloud Persistence (p. 145)
  • Database Persistence (p. 146)
  • A Note on Performance (p. 146)
  • Setting Up MongoDB (p. 147)
  • Mongoose (p. 147)
  • Database Connections with Mongoose (p. 148)
  • Creating Schemas and Models (p. 149)
  • Seeding Initial Data (p. 150)
  • Retrieving Data (p. 151)
  • Adding Data (p. 152)
  • Using MongoDB for Session Storage (p. 154)
  • 14 Routing (p. 157)
  • Routes and SEO (p. 159)
  • Subdomains (p. 159)
  • Route Handlers Are Middleware (p. 160)
  • Route Paths and Regular Expressions (p. 162)
  • Route Parameters (p. 162)
  • Organizing Routes (p. 163)
  • Declaring Routes in a Module (p. 164)
  • Grouping Handlers Logically (p. 165)
  • Automatically Rendering Views (p. 166)
  • Other Approaches to Route Organization (p. 167)
  • 15 Rest APIs and Json (p. 169)
  • JSON and XML (p. 170)
  • Our API (p. 170)
  • API Error Reporting (p. 171)
  • Cross-Origin Resource Sharing (CORS) (p. 172)
  • Our Data Store (p. 173)
  • Our Tests (p. 173)
  • Using Express to Provide an API (p. 175)
  • Using a REST Plugin (p. 176)
  • Using a Subdomain (p. 178)
  • 16 Static Content (p. 181)
  • Performance Considerations (p. 182)
  • Future-Proofing Your Website (p. 182)
  • Static Mapping (p. 183)
  • Static Resources in Views (p. 185)
  • Static Resources in CSS (p. 185)
  • Static Resources in Server-Side JavaScript (p. 187)
  • Static Resources in Client-Side JavaScript (p. 187)
  • Serving Static Resources (p. 189)
  • Changing Your Static Content (p. 190)
  • Bundling and Minification (p. 190)
  • Skipping Bundling and Minification in Development Mode (p. 193)
  • A Note on Third-Party Libraries (p. 195)
  • QA (p. 195)
  • Summary (p. 197)
  • 17 Implementing MVC in Express (p. 199)
  • Models (p. 200)
  • View Models (p. 201)
  • Controllers (p. 203)
  • Conclusion (p. 205)
  • 18 Security (p. 207)
  • HTTPS (p. 207)
  • Generating Your Own Certificate (p. 208)
  • Using a Free Certificate Authority (p. 209)
  • Purchasing a Certificate (p. 210)
  • Enabling HTTPS for Your Express App (p. 212)
  • A Note on Ports (p. 213)
  • HTTPS and Proxies (p. 214)
  • Cross-Site Request Forgery (p. 215)
  • Authentication (p. 216)
  • Authentication Versus Authorization (p. 216)
  • The Problem with Passwords (p. 217)
  • Third-Party Authentication (p. 217)
  • Storing Users in Your Database (p. 218)
  • Authentication Versus Registration and the User Experience (p. 219)
  • Passport (p. 220)
  • Role-Based Authorization (p. 229)
  • Adding Additional Authentication Providers (p. 231)
  • Conclusion (p. 232)
  • 19 Integrating with Third-Party APIs (p. 233)
  • Social Media (p. 233)
  • Social Media Plugins and Site Performance (p. 233)
  • Searching for Tweets (p. 234)
  • Rendering Tweets (p. 237)
  • Geocoding (p. 241)
  • Geocoding with Google (p. 241)
  • Geocoding Your Data (p. 242)
  • Displaying a Map (p. 245)
  • Improving Client-Side Performance (p. 247)
  • Weather Data (p. 248)
  • Conclusion (p. 250)
  • 20 Debugging (p. 251)
  • The First Principle of Debugging (p. 251)
  • Take Advantage of REPL and the Console (p. 252)
  • Using Node's Built-in Debugger (p. 253)
  • Node Inspector (p. 253)
  • Debugging Asynchronous Functions (p. 257)
  • Debugging Express (p. 257)
  • 21 Going Live (p. 261)
  • Domain Registration and Hosting (p. 261)
  • Domain Name System (p. 262)
  • Security (p. 262)
  • Top-Level Domains (p. 263)
  • Subdomains (p. 264)
  • Nameservers (p. 265)
  • Hosting (p. 266)
  • Deployment (p. 269)
  • Conclusion (p. 272)
  • 22 Maintenance (p. 273)
  • The Principles of Maintenance (p. 273)
  • Have a Longevity Plan (p. 273)
  • Use Source Control (p. 275)
  • Use an Issue Tracker (p. 275)
  • Exercise Good Hygiene (p. 275)
  • Don't Procrastinate (p. 276)
  • Do Routine QA Checks (p. 276)
  • Monitor Analytics (p. 277)
  • Optimize Performance (p. 277)
  • Prioritize Lead Tracking (p. 277)
  • Prevent "Invisible" Failures (p. 279)
  • Code Reuse and Refactoring (p. 279)
  • Private npm Registry (p. 280)
  • Middleware (p. 281)
  • Conclusion (p. 283)
  • 23 Additional Resources (p. 285)
  • Online Documentation (p. 285)
  • Periodicals (p. 286)
  • Stack Overflow (p. 286)
  • Contributing to Express (p. 288)
  • Conclusion (p. 290)
  • Index (p. 291)

Author notes provided by Syndetics

Ethan Brown is a senior software engineer at Pop Art, an interactive marketing agency in Portland, Oregon. He's responsible for the architecture and implementation of web applications for clients ranging from small businesses to international enterprises.

Powered by Koha