
Node Cookbook
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
- Create your own web server to see Node's features in action
- Work with JSON, XML, web sockets, and make the most of asynchronous programming
Book DescriptionThe principles of asynchronous event-driven programming are perfect for today's web, where efficient real-time applications and scalability are at the forefront. Server-side JavaScript has been here since the 90's but Node got it right. With a thriving community and interest from Internet giants, it could be the PHP of tomorrow. "Node Cookbook" shows you how to transfer your JavaScript skills to server side programming. With simple examples and supporting code, "Node Cookbook" talks you through various server side scenarios often saving you time, effort, and trouble by demonstrating best practices and showing you how to avoid security faux pas. Beginning with making your own web server, the practical recipes in this cookbook are designed to smoothly progress you to making full web applications, command line applications, and Node modules. Node Cookbook takes you through interfacing with various database backends such as MySQL, MongoDB and Redis, working with web sockets, and interfacing with network protocols, such as SMTP. Additionally, there are recipes on correctly performing heavy computations, security implementations, writing, your own Node modules and different ways to take your apps live.What you will learn - Write and publish your own modules
- Interface with various databases
- Work with streams of data
- Handle file uploads and POST data
- Use the Express framework to accelerate the development of your applications
- Learn about security, encryption, and authentication techniques
Who this book is forIf you have some knowledge of JavaScript and want to build fast, efficient, scalable client-server solutions, then Node Cookbook is for you. Experienced users of Node will improve their skills although even if you have not worked with Node before, these practical recipes will make it easy to get started.
More details
Other editions
New editions

Additional editions

Person
David Mark Clements is a principal architect with nearForm, specializing in Node, frontend web, and JavaScript performance. He assists multinationals and start-ups alike with architecture planning, creating and leading development teams, innovation projects, internal evangelism, training, and deep dive consultancy on all aspects of live systems (architecture, performance, infrastructure, and deployment). David is also an avid open source enthusiast, and regularly speaks at various JavaScript and web conferences. Node.js became a core component of his toolset (since version 0.4) due to its versatility, vast ecosystem, and the cognitive ease that comes with full-stack JavaScript. Being primarily self-taught, David Mark Clements has a potent curiosity that typically drives him to approach problems with a unique perspective.
Content
- Intro
- Node Cookbook
- Table of Contents
- Node Cookbook
- Credits
- About the Author
- About the Reviewers
- www.PacktPub.com
- Support files, eBooks, discount offers and more
- Why Subscribe?
- Free Access for Packt account holders
- Preface
- What this book covers
- What you need for this book
- Who this book is for
- Conventions
- Reader feedback
- Customer support
- Downloading the example code
- Errata
- Piracy
- Questions
- 1. Making a Web Server
- Introduction
- Setting up a router
- Getting ready
- How to do it...
- How it works...
- There's more...
- Simple multilevel routing
- Parsing the querystring
- Routing modules
- See also
- Serving static files
- Getting ready
- How to do it...
- How it works...
- There's more...
- The favicon gotcha
- See also
- Caching content in memory for immediate delivery
- Getting ready
- How to do it...
- How it works...
- There's more...
- Reflecting content changes
- See also
- Optimizing performance with streaming
- Getting ready
- How to do it...
- How it works...
- There's more...
- Protecting against process memory overruns
- See also
- Securing against filesystem hacking exploits
- Getting ready
- How to do it...
- How it works...
- There's more...
- Whitelisting
- Node-static
- See also
- 2. Exploring the HTTP Object
- Introduction
- Processing POST data
- Getting ready
- How to do it...
- How it works...
- There's more...
- Accessing POST data with connect.bodyParser
- See also
- Handling file uploads
- Getting ready
- How to do it...
- How it works...
- There's more...
- Using formidable to accept all POST data
- Preserving filenames with formidable
- Uploading via PUT
- See also
- Using Node as an HTTP client
- Getting ready
- How to do it...
- How it works...
- There's more...
- Sending POST requests
- Multipart file upload as a client
- See also
- Implementing download throttling
- Getting ready
- How to do it...
- How it works...
- Enabling resumes from broken downloads
- See also
- 3. Working with Data Serialization
- Introduction
- Converting an object to JSON and back again
- Getting ready
- How to do it...
- How it works...
- There's more...
- Constructing JSONP responses
- Security and JSONP
- See also
- Converting an object to XML and back again
- Getting ready
- How to do it...
- How it works...
- There's more...
- Objects containing arrays and functions
- Generating XML attributes
- Text values alongside attribute declarations
- See also
- Browser-server transmission via AJAX
- Getting ready
- How to do it...
- How it works...
- There's more...
- Sending serialized data from client to server
- See also
- Working with real data: fetching trending tweets
- Getting ready
- How to do it...
- How it works...
- Twitter API and the User-Agent header
- There's more...
- Cross referencing Google Hot Trends with Twitter tweets
- See also
- 4. Interfacing with Databases
- Introduction
- Writing to a CSV file
- Getting ready
- How to do it...
- How it works...
- There's more...
- Customizing the CSV elements
- Reading a CSV file
- Manipulating CSV as a stream
- See also
- Connecting and sending SQL to a MySQL server
- Getting ready
- How to do it...
- How it works...
- There's more...
- Using and cleaning user input
- Receiving results from the MySQL server
- See also
- Storing and retrieving data with MongoDB
- Getting ready
- How to do it...
- How it works...
- There's more...
- Indexing and aggregation
- Updating modifiers, sort, and limit
- See also
- Storing and retrieving data with Mongoskin
- Getting ready
- How to do it...
- How it works...
- There's more...
- Collection binding
- See also
- Storing data to CouchDB with Cradle
- Getting ready
- How to do it...
- How it works...
- There's more...
- Scaling CouchDB with BigCouch
- See also
- Retrieving data from CouchDB with Cradle
- Getting ready
- How to do it...
- How it works...
- There's more...
- Creating an admin user
- Locking all modifying operations to an admin user
- Exposing the CouchDB HTTP interface to remote connections
- See also
- Accessing CouchDB changes stream with Cradle
- Getting ready
- How to do it...
- How it works...
- See also
- Storing and retrieving data with Redis
- Getting ready
- How to do it...
- How it works...
- There's more...
- Speeding up node Redis module
- Overcoming network latency by pipelining commands
- See also
- Implementing PubSub with Redis
- Getting ready
- How to do it...
- How it works...
- There's more...
- Redis authentication
- Securing Redis from external connections
- See also
- 5. Transcending AJAX: Using WebSockets
- Introduction
- Creating a WebSocket server
- Getting ready
- How to do it...
- How it works...
- There's more...
- Supporting older Firefox browsers
- Creating a node-based WebSocket client
- See also
- Seamless fallbacking with socket.io
- Getting ready
- How to do it...
- How it works...
- There's more...
- Custom events
- Namespaces
- See also
- Callbacks over socket.io transport
- Getting ready
- How to do it...
- How it works...
- There's more...
- Shared functions with Nowjs
- See also
- Creating a real-time widget
- Getting ready
- How to do it...
- How it works...
- There's more...
- Preparing for scalability
- WebSockets as a development tool
- See also
- 6. Accelerating Development with Express
- Introduction
- Generating Express scaffolding
- Getting ready
- How to do it...
- How it works...
- There's more...
- Picking apart app.js
- Looking into routes/index.js
- See also
- Defining and applying environments
- Getting ready
- How to do it...
- How it works...
- There's more...
- Setting other environments
- Changing NODE_ENV permanently
- See also
- Dynamic routing
- Getting ready
- How to do it...
- How it works...
- There's more...
- Route validation
- Optional routes
- Asterisks wildcards
- See also
- Templating in Express
- Getting ready
- How to do it...
- How it works...
- There's more...
- Using other template engines
- EJS templates
- Literal JavaScript in Jade
- Jade partials
- Express partials
- Jade includes
- layout.jade
- See also
- CSS engines with Express
- Getting ready
- How to do it...
- How it works...
- There's more...
- Nested mixins and rest parameters
- Playing with colors
- Using the LESS engine
- See also
- Initializing and using a session
- Getting ready
- How to do it...
- How it works...
- There's more...
- Custom middleware for site-wide session management
- Flash messages
- See also
- Making an Express web app
- Getting ready
- How to do it...
- Creating a database bridge
- Configuring app.js files
- Modifying the profiler app
- Modifying the mounted login App
- How it works...
- App mounting
- Data Flow
- Route handling
- Views
- Mixins
- Helpers
- Styles
- User flow
- There's more...
- Benchmarking
- Using logger
- See also
- 7. Implementing Security, Encryption, and Authentication
- Introduction
- Implementing Basic Authentication
- Getting ready
- How to do it...
- How it works...
- There's more...
- Basic Authentication with Express
- See also
- Cryptographic password hashing
- Getting ready
- How to do it...
- How it works...
- There's more...
- Uniquifying hashes with HMAC
- Hardened hashing with PBKDF2
- See also
- Implementing Digest Authentication
- Getting ready
- How to do it...
- How it works...
- There's more...
- Logging out of authenticated areas
- See also
- Setting up an HTTPS web server
- Getting ready
- How to do it...
- How it works...
- There's more...
- HTTPS in Express
- Securing Basic Authentication with SSL/TLS
- See also
- Preventing cross-site request forgery
- Getting ready
- How to do it...
- How it works...
- Cross-site scripting (XSS) circumvention
- There's more...
- Auto-securing the POST forms with the CSRF elements
- Eliminating cross-site scripting (XSS) vulnerabilities
- See also
- 8. Integrating Network Paradigms
- Introduction
- Sending email
- Getting ready
- How to do it...
- How it works...
- There's more...
- Using sendmail as an alternative transport
- HTML emails
- Sending attachments
- See also
- Sending SMS
- Getting ready
- How to do it...
- How it works...
- There's more...
- Using the processed event listener
- Making an automated phone call
- See also
- Communicating with TCP
- Getting ready
- How to do it...
- How it works...
- There's more...
- Port forwarding
- Using pcap to watch TCP traffic
- See also
- Creating an SMTP server
- Getting ready
- How to do it...
- How it works...
- There's more...
- Receiving emails from external SMTP servers
- See also
- Implementing a virtual hosting paradigm
- Getting ready
- How to do it...
- How it works...
- There's more...
- Virtual hosting Express apps
- Server Name Indication
- See also
- 9. Writing Your Own Node Modules
- Introduction
- Creating a test-driven module API
- Getting ready
- How to do it...
- How it works...
- There's more...
- Unit tests with should.js
- See also
- Writing a functional module mock-up
- Getting ready
- How to do it...
- How it works...
- There's more...
- Writing a module use case example
- See also
- Refactoring from functional to prototypical
- Getting ready
- How to do it...
- How it works...
- There's more...
- Adding the stat function to the initialized mp3dat object
- Allowing for multiple instances
- See also
- Extending the module's API
- Getting ready
- How to do it...
- How it works...
- There's more...
- Making the STDIN stream example
- Making the PUT upload stream example
- Merging stat and statStream
- Integrating the EventEmitter
- See also
- Deploying a module to npm
- Getting ready
- How to do it...
- How it works...
- There's more...
- npm link
- .npmignore and npm version
- See also
- 10. Taking It Live
- Introduction
- Deploying to a server environment
- Getting ready
- How to do it...
- How it works...
- There's more...
- Using screen instead of nohup
- Using authbind for privileged ports
- Hosting multiple processes from port 80
- See also
- Automatic crash recovery
- Getting ready
- How to do it...
- How it works...
- There's more...
- Detecting a respawn limit violation
- Staying up with forever
- See also
- Continuous deployment
- Getting ready
- How to do it...
- How it works...
- There's more...
- Building module dependencies on update
- Writing a Node Git hook for integrated testing
- See also
- Hosting with a Platform as a Service provider
- Getting ready
- How to do it...
- How it works...
- There's more...
- Assigning custom domains to Nodejitsu apps
- Provisioning a database with jitsu
- See also
- 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.