Index
A
- absolute module identifiers
- addedit.html template / Putting together the Notes web application—app.js, Notes application templates
- add function / Database abstraction module—notesdb-sqlite3.js
- adduser command / Developing and publishing npm packages
- algorithmic refactoring / Long running calculations (fibonacci numbers)
- allNotes function / Database abstraction module—notesdb-sqlite3.js
- app-connect.js / Connecting with Connect
- app-node.js file
- about / Routing requests in Node
- app.js
- application
- external dependencies, bundling with / Bundling external dependencies with your application
- apt-get tool
- about / Node package Manager (npm)
- asynchronous event-driven architecture
B
- basicserver.js file
- Basic Server core
- basic web server
- about / Implementing a basic web server
- implementing / The Basic Server implementation
- favicon handler / The Favicon handler (faviconHandler.js)
- static file handler / The static file handler (staticHandler.js)
- configuring / A configuration for Basic Server (server.js)
- capabilities / A configuration for Basic Server (server.js)
- virtual host configuration / Virtual host configuration with Basic Server
- shorturl module / A shorturl module for Basic Server
- cookie handling / Cookie handling
- virtual hosting / Virtual hosts and request routing
- bin tag / npm package format
- blocking I/O
C
- Cluster
- command-line tools, Node
- node / Node's command-line tools
- node-waf / Node's command-line tools
- CommonJS module system
- complex modules
- config set command / npm configuration settings
- configuration, basic web server / A configuration for Basic Server (server.js)
- configuration settings, npm / npm configuration settings
- Connect
- about / What can you do with Node?, To use a web framework, or not, Using Connect to implement the Math Wizard
- Math Wizard, implementing with / Using Connect to implement the Math Wizard
- installing / Installing Connect and other setup
- connecting with / Connecting with Connect
- server object, setting up / Connecting with Connect
- Connect based Node application
- running / Installing Connect and other setup
- connect function / Putting together the Notes web application—app.js
- containers
- Content-Type header / MIME types and the MIME npm package
- cookie handling / Cookie handling
- cookies
- about / Cookie handling
- CouchDB
- about / Data storage engines for Node
- count variable / What's a module?
- CPAN
- about / Node package Manager (npm)
- CPU cores
- using, on multi-core systems / Using all CPU cores on multi-core systems
- createServer function / Basic Server core (basicserver.js)
- CREATE TABLE command / Implementing the Notes application with SQLite3
- curl command / Making HTTP Client requests
D
- database
- initializing / Initializing the database—setup.js
- printing, to console / Display notes on the console—show.js
- notes, adding to / Putting together the Notes web application—app.js
- notes, deleting from / Putting together the Notes web application—app.js
- notes, editing in / Putting together the Notes web application—app.js
- database abstraction module, Sqlite3
- database connection
- maintaining / Putting together the Notes web application—app.js
- data storage engines
- about / Data storage engines for Node
- db.foo.find command / Installing Mongoose
- Debian's launchtool
- delete function / Database abstraction module—notesdb-sqlite3.js
- developer tools
- about / Installing developer tools on Mac OS X
- installing, in home directory / Installing in your home directory, What's the rationale for a home directory installation?
- installing, in system-wide directory / Installing in a system-wide directory
- installing on Mac OS X, with MacPorts / Installing on Mac OS X with MacPorts
- installing on Mac OS X, with homebrew / Installing on Mac OS X with homebrew
- installing on Linux, from package management systems / Installing on Linux from package management systems
- developer tools installation, on Mac OS X
- about / Installing developer tools on Mac OS X
- home directory, installing in / Installing in your home directory, What's the rationale for a home directory installation?
- system-wide directory, installing in / Installing in a system-wide directory
- with MacPorts / Installing on Mac OS X with MacPorts
- with homebrew / Installing on Mac OS X with homebrew
- installing, on Linux from package management systems / Installing on Linux from package management systems
- multiple Node installs, maintaining simultaneously / Maintaining multiple Node installs simultaneously
- development environment, Node
- system requisites / System requirements
- directories tag / npm package format
- disconnect function / Database abstraction module—notesdb-sqlite3.js, Putting together the Notes web application—app.js
- dispatch function / What "complete web server" features are missing?
- dispatchToContainer function / Basic Server core (basicserver.js)
- docroot option / The static file handler (staticHandler.js)
- doEach function / Database abstraction module—notesdb-sqlite3.js
- done function / Database abstraction module—notesdb-sqlite3.js
E
- edit function / Database abstraction module—notesdb-sqlite3.js
- encapsulation
- example / What's a module?
- errors
- handling, in Express Math Wizard / Handling errors
- EventEmitter class
- EventEmitter object
- about / Sending and receiving events with EventEmitters
- events, receiving with / Sending and receiving events with EventEmitters
- events, sending with / Sending and receiving events with EventEmitters
- events / EventEmitter theory
- event names / EventEmitter theory
- events
- sending, with EventEmitter object / Sending and receiving events with EventEmitters
- receiving, with EventEmitter object / Sending and receiving events with EventEmitters
- about / EventEmitter theory
- explore command / Editing and exploring installed package content
- Express
- about / To use a web framework, or not
- Math Wizard, implementing with / Using Express to implement the Math Wizard
- Express Math Wizard
- implementing / Implementing the Express Math Wizard
- errors, handling / Handling errors
- data services / Parameterized URLs and data services
- parameterized URLs / Parametrized URLs in Express
- mathematics server / The mathematics server (and client)
- express module / Bundling external dependencies with your application
- external dependencies
- bundling, with application / Bundling external dependencies with your application
F
- factorial-node.js / Calculating the other mathematical functions
- Favicon
- Favicon handler
- faviconHandler.js file
- fibo-node.js / Calculating the other mathematical functions
- fibonacci numbers
- filters
- findNoteById function / Database abstraction module—notesdb-sqlite3.js
- forAll function / Database abstraction module—notesdb-sqlite3.js
- forever
- forms module / Bundling external dependencies with your application
- fs module
- about / What's a module?
- fs object / What's a module?
- fugue
G
- get command / npm configuration settings
- Global Object
H
- handle function / The Favicon handler (faviconHandler.js)
- help
- retrieving, from npm / Getting help with npm
- home-node.js / Calculating the other mathematical functions
- HTTP
- http.createServer method / Performance and utilization
- HTTPClient object / Sending and receiving events with EventEmitters
- HTTP Client requests
- creating / Making HTTP Client requests
- HTTP headers
- about / MIME types and the MIME npm package
- Content-Encoding / MIME types and the MIME npm package
- Content-Language / MIME types and the MIME npm package
- Content-Length / MIME types and the MIME npm package
- Content-Location / MIME types and the MIME npm package
- Content-MD5 / MIME types and the MIME npm package
- HTTP modules
- about / What can you do with Node?
- http object
- about / Performance and utilization
- HTTP protocol
- about / Cookie handling
- HTTP Server object
- HTTPServer object / Sending and receiving events with EventEmitters
- HTTP Sniffer
- httpsniffer.js file / HTTP Sniffer—listening to the HTTP conversation
- htutil.loadParams function / Handling URL query parameters
- htutil.navbar function / Extending the Math Wizard
- htutil.page function / Multiplying numbers
I
- init command / Developing and publishing npm packages
- install command / Developing and publishing npm packages
- installed npm package
- uninstalling / Uninstalling an installed npm package
- installing
- npm package / Installing an npm package
- Connect / Installing Connect and other setup
- Sqlite3 / Installation
- Mongoose / Installing Mongoose
J
- java.util.concurrent framework / Architecture: Threads versus asynchronous event-driven
- JavaScript
- about / Server-side JavaScript
- disadvantages / Why should you use Node?
L
- launchd script
- list command / What packages are currently installed?, Package version strings and ranges
- local modules
- logger middleware
- about / Connecting with Connect
- Lorem Ipsum generator / A configuration for Basic Server (server.js)
- low level SQL databases
- Node-mysql / Using other SQL databases with Node
- Node-mysql-native / Using other SQL databases with Node
- Node-mysql-libmysqlclient / Using other SQL databases with Node
- Node-postgres / Using other SQL databases with Node
- Node-sqlite3 / Using other SQL databases with Node
- Node-orm / Using other SQL databases with Node
- persistence.js / Using other SQL databases with Node
M
- MacPorts project
- about / Node package Manager (npm)
- math.js / Calculating the other mathematical functions
- mathematical functions
- calculating / Calculating the other mathematical functions
- mathematics web pages
- creating, in Math Wizard / Multiplying numbers
- math module / Calculating the other mathematical functions
- Math Wizard
- creating / Creating a Math Wizard
- layouts / Creating a Math Wizard
- implementing, with node / Implementing the Math Wizard with Node (no frameworks)
- URLs / Implementing the Math Wizard with Node (no frameworks)
- URL query parameters, handling / Handling URL query parameters
- mathematical web pages, creating in / Multiplying numbers
- mathematical functions, calculating / Calculating the other mathematical functions
- extending / Extending the Math Wizard
- long running calculations / Long running calculations (fibonacci numbers)
- missing complete web server features / What "complete web server" features are missing?
- implementing, Connect used / Using Connect to implement the Math Wizard
- implementing, Express used / Using Express to implement the Math Wizard
- refactoring / Refactoring Math Wizard to use math server
- Memcache
- about / Data storage engines for Node
- middleware
- MIME module
- about / Implementing a basic web server
- MIME npm package / MIME types and the MIME npm package
- MIME protocol
- module
- about / What's a module?, Node modules, How does Node resolve require('module')?
- example / What's a module?
- module encapsulation
- demonstrating / Demonstrating module encapsulation
- module identifiers
- MongoDB
- about / Data storage engines for Node, Implementing the Notes application with SQLite3, Mongoose—Node interface to MongoDB
- URL, for documentation / Mongoose—Node interface to MongoDB
- database support / Other MongoDB database support
- Mongolia / Other MongoDB database support
- Mongoose
- about / Mongoose—Node interface to MongoDB
- URL / Mongoose—Node interface to MongoDB
- installing / Installing Mongoose
- Notes application, implementing with / Implementing the Notes application with Mongoose
- database abstraction module / Database abstraction module—notesdb-mongoose.js
- notes, displaying on console / Display notes on the console—show.js
- show.js / Display notes on the console—show.js
- app.js / Putting it together in an application—app.js
- Mongous
- about / Other MongoDB database support
- mult-node.js / Multiplying numbers
- multi-process Node server projects
- multiple Node installs
- maintaining simultaneously / Maintaining multiple Node installs simultaneously
- multiplication module / Multiplying numbers
- MySQL
- about / Data storage engines for Node
N
- nmDbEngine variable / Putting together the Notes web application—app.js
- node
- capabilities / What can you do with Node?
- network layer / What can you do with Node?
- server-side JavaScript / Server-side JavaScript
- benefits / Why should you use Node?
- asynchronous event-driven architecture / Architecture: Threads versus asynchronous event-driven
- utilization / Performance and utilization
- performance / Performance and utilization
- server utilization / Server utilization, the bottom line, and green web hosting
- green web hosting / Server utilization, the bottom line, and green web hosting
- modules / What's a module?, Node modules
- Math Wizard, implementing with / Implementing the Math Wizard with Node (no frameworks)
- routing requests strategy / Routing requests in Node
- data storage engines / Data storage engines for Node
- Node
- setting up / System requirements
- installing, on POSIX-like systems / Installation on POSIX-like systems (Linux, Solaris, Mac, and so on)
- developer tools / Installing developer tools on Mac OS X
- developer tools, installing on Mac OS X / Installing developer tools on Mac OS X
- command-line tools / Node's command-line tools
- simple script, running / Running a simple script with Node
- server, launching / Launching a server with Node
- node-init
- Node-mongodb / Other MongoDB database support
- node-mongodb-native / Other MongoDB database support
- node-mongolian / Other MongoDB database support
- Node-mysql / Using other SQL databases with Node
- Node-mysql-libmysqlclient / Using other SQL databases with Node
- Node-mysql-native / Using other SQL databases with Node
- node-nosql-thin / Other MongoDB database support
- Node-orm / Using other SQL databases with Node
- Node-postgres
- Node-sqlite3
- node-sqlite3 project / SQLite3—Lightweight in-process SQL engine
- node application
- local modules / Local modules within your application
- system-wide modules / System-wide modules in the require.paths directories
- complex modules / Complex modules—modules as directories
- Node installation
- Node installation, on POSIX-like systems
- installation instructions / Installation on POSIX-like systems (Linux, Solaris, Mac, and so on)
- prerequisites / Installing prerequisites
- nodejs-autorestart
- Node servers
- starting, at system startup / Starting Node servers at system startup
- node_modules directory / Module identifiers and path names, Bundling external dependencies with your application
- NODE_PATH environment variable / System-wide modules in the require.paths directories
- notes
- adding, to database / Putting together the Notes web application—app.js
- deleting, from database / Putting together the Notes web application—app.js
- editing, in database / Putting together the Notes web application—app.js
- Notes application
- implementing, with sqlite3 / Implementing the Notes application with SQLite3
- implementing, with Mongoose / Implementing the Notes application with Mongoose
- Notes application templates / Notes application templates
- notesdb-mongoose.js / Database abstraction module—notesdb-mongoose.js
- notesdb-sqlite3.js
- Notes web application
- npm
- installing / Installing npm—the Node package manager
- about / Node package Manager (npm)
- installed packages, using / Using installed packages
- installed packages,listing / What packages are currently installed?
- list command / What packages are currently installed?, Package version strings and ranges
- package scripts / Package scripts
- installed package content, exploring / Editing and exploring installed package content
- installed package content, editing / Editing and exploring installed package content
- outdated packages, updatng / Updating outdated packages you've installed
- init command / Developing and publishing npm packages
- install command / Developing and publishing npm packages
- adduser command / Developing and publishing npm packages
- publish command / Developing and publishing npm packages
- unpublish command / Developing and publishing npm packages
- configuration settings / npm configuration settings
- package version strings / Package version strings and ranges
- npm commands
- using / Using the npm commands
- help, retrieving from / Getting help with npm
- npm package format / npm package format
- npm package information
- viewing / Viewing package information
- npm packages
- about / Node package Manager (npm)
- format / npm package format
- searching / Finding npm packages
- installing / Installing an npm package
- publishing / Developing and publishing npm packages
- developing / Developing and publishing npm packages
- version strings / Package version strings and ranges
- npm package scripts / Package scripts
O
- options object / Basic Server core (basicserver.js)
P
- package.json file / npm package format, Viewing package information
- package dependencies
- packages
- about / npm package format
- page rendering / Putting together the Notes web application—app.js
- parseUrlParams function / Putting together the Notes web application—app.js
- PEAR
- about / Node package Manager (npm)
- persistence.js
- Postgres
- about / Data storage engines for Node
- postpath variable / Putting together the Notes web application—app.js
- process.nextTick function / Long running calculations (fibonacci numbers)
- processHeaders function / Basic Server core (basicserver.js)
- providers
- publish command / Developing and publishing npm packages
- pulse event / EventEmitter theory
- Pulser class
- Pulser object / Sending and receiving events with EventEmitters
Q
R
- REDIS
- about / Data storage engines for Node
- relative module identifiers
- replace function / Handling URL query parameters
- req object / Parametrized URLs in Express, A quick look at authenticating your users
- Request object / EventEmitter theory
- require function / What's a module?
- res object / The static file handler (staticHandler.js)
- RingoJS application framework / Server-side JavaScript
- router functions
- router middleware
- about / Connecting with Connect
- routing requests strategy
- about / Routing requests in Node
- rpm tool
- about / Node package Manager (npm)
- run function / Database abstraction module—notesdb-sqlite3.js
S
- Semantic Versioning model / Package version strings and ranges
- set command / npm configuration settings
- setup.js / Initializing the database—setup.js
- shorturl module / A shorturl module for Basic Server
- show.js
- sniffOn function / HTTP Sniffer—listening to the HTTP conversation
- SQLITE3
- about / Data storage engines for Node
- sqlite3
- Notes application, implementing with / Implementing the Notes application with SQLite3
- Sqlite3
- about / SQLite3—Lightweight in-process SQL engine
- installing / Installation
- database abstraction module / Database abstraction module—notesdb-sqlite3.js
- database, initializing / Initializing the database—setup.js
- notes, displaying on console / Display notes on the console—show.js
- app.js / Putting together the Notes web application—app.js
- Notes application templates / Notes application templates
- errors, debugging / Handling and debugging errors
- errors, handling / Handling and debugging errors
- sqlite3 Notes application
- running / Running the SQLite3 Notes application
- square-node.js / Calculating the other mathematical functions
- start method / Sending and receiving events with EventEmitters
- static file handler
- staticHandler.js file
- static middleware
- about / Connecting with Connect
- Swing
- about / What can you do with Node?
- system-wide modules / System-wide modules in the require.paths directories
- system requisites, Node
- about / System requirements
- POSIX-like operating systems / System requirements
T
- tar-gzip tarballs
- about / npm package format
- threads
- versus asynchronous event-driven architecture / Architecture: Threads versus asynchronous event-driven
- top-level module identifiers
U
- .use method / Connecting with Connect
- Ubuntu's Upstart tool
- unpublish command / Developing and publishing npm packages
- UPDATE SQL statement / Database abstraction module—notesdb-sqlite3.js
- URL query parameters
- handling / Handling URL query parameters
- user authentication
V
- V8 engine
- about / What can you do with Node?
- view command / Viewing package information
- viewnotes.html template / Putting together the Notes web application—app.js
- virtual host configuration, basic web server / Virtual host configuration with Basic Server
- virtual hosting
W
- Web frameworks / To use a web framework, or not
- wget command / Making HTTP Client requests
Y
- YQL
- about / Data storage engines for Node
- YSlow / Long running calculations (fibonacci numbers)
- yum tool
- about / Node package Manager (npm)