This page is way too big, but then the subject of NodeJS is huge as well.

NodeJS has extensive support, is as web-aware as technical enviroments get, has a good solid good API and will possibly become one of the standard command languages. What's there not to like ?

Well ... possibly applications that conflict with the asychronous event / reactor model. It's like Twisted, only more so. In fact, sometimes you have to struggle to shoe-horn straight-forward procedural code into NodeJS.

Fortunately, there are tons of extention libraries that help developers build conventional applications. However, if that's what you are doing with it, straight procedural programming, you probably shouldn't be doing it with NodeJS, at least not directly.

For building simple quick "web memo" applications using MongoDB or CouchDB, there's nothing quicker and easier that I've discovered.

Firefox and NodeJS

Firefox Addon
Node Firefox - No Windows ?
Recent Article about node-firefox
Node.js Articles at Mozilla

Essential Node JS Apps

Every language environemnt needs to have killer applications... that is, apps that make you need to have Node JS. I have found several of them so far and am likely to find more.

Etherpad Lite

Etherpad is a killer app, no question about it. A collaborative editing applications, it works great, opens new visas, is almost unique ... however, there is one fly in the functional soup, cutting and pasting large blocks of text.

I pasted a 43K block of text into an etherpad page using Notes/Firefox and the machine went bye bye for a full minute or more. !!!!

In contrast, I did the same thing with PyWacket Chat ( Tornado with web sockets ) and the result was messy but machine didn't seize up ... so ... maybe bad news for etherpad as a general purpose cut and paste solution.

Pasting 1K of text seems to be OK. Gobby has the same problem, maybe on a lesser scale - see GTKApps#Gobby

Etherpad Lite Demo -

From :


Don't know if this things will work. Be great if it did. - supposedly with a built-in XMPP server


node-expat (requires libexpat!) ltx - Oh oh ... depends on Win32 binary expatlib, no new release since 03-2012, update: checked link, new release June 2016, Expat 2.2.0 ... all is well.

This type of dependency to an under-supported Windows binary can be a problem, but does it matter in ever case ? The XML standard is mostly static, so it probably did not matter in this case ...

Probably Essential NodeJS Apps

Socket.IO is a JavaScript library for realtime web applications. It enables realtime, bi-directional communication between web clients and server. It has two parts: a client-side library that runs in the browser, and a server-side library for node.js. Both components have a nearly identical API. Like node.js, it is event-driven.

Socket.IO primarily uses the WebSocket protocol with polling as a fallback option,[2] while providing the same interface. Although it can be used as simply a wrapper for WebSocket, it provides many more features, including broadcasting to multiple sockets, storing data associated with each client, and asynchronous I/O.

Live Demo of Chat

Seems to have a fairly impressive chat application, didn't choke on several K of pasted text ....

Also see

  • " = express +"

Also Python implementation of ???? See WebSocket#GeventandSocketIO

Mongo DB

See Main MongDB page.

About the Mongo Shell - JavaScript
Mongo Native Driver

The MongoDB Node.js driver is the officially supported node.js driver for MongoDB ...

  • written in pure JavaScript
  • provides a native asynchronous Node.js interface to MongoDB.

... Can be used on its own, but it also serves as the basis of several object mapping libraries, such as Mongoose.

Mongoose RDB Mapper

Mongoose provides a straight-forward, schema-based solution to modeling your application data and includes built-in type casting, validation, query building, business logic hooks and more, out of the box.

Express JS

Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.

Installation via npm:

  • NPM installation seems to assume Linux
Database Integration
Strompath Example of Simple Web App
AngularJS Tutorial With NodeJS ExpressJS and MongoDB (Part I)
Creating RESTful APIs With NodeJS and MongoDB (Part 2)
MEAN Stack Tutorial MongoDB ExpressJS AngularJS NodeJS (Part 3)

Express Database Integration -

Template Engines -

Possible Node JS Apps


Node JS Chat
Node JS To Do
Springle Chat - Realtime chat using NodeJS and WebSocket


Since the earlier creation of the node version, to complement the original Ruby implementation, there has been a risk of the two versions diverging ...

Support for MongoDB is added by installing the wiki-storage-mongodb package ...



See SemanticWiki#FederatedWiki

Tiddly Wiki

TiddlyWiki is designed to be non-linear, structuring content with stories, tags, hyperlinks, and other features. You can organise and retrieve your notes in ways that conform to your personal thought patterns, rather than feel chained to one preset organisational structure.

You can use TiddlyWiki as a single file that you view and edit through any web browser, whether you are online or offline. Or you can use it as a powerful Node.js application that stores each of your notes as a separate file ...

Running TiddlyWiki on Node.js brings several important benefits over and above the single file version:

You can edit your content on any suitably compatible HTML5 browser, including smartphones and tablets

Individual tiddlers are stored in separate files, which you can organise as you wish

The ability to build multiple wikis that blend different combinations of shared and unique content

Tiddly Fox

TiddlyFox is an extension for Firefox that allows standalone TiddlyWiki files to save their changes directly to the file system.

TiddlyFox works on both desktop and smartphone versions of Firefox. See Saving with TiddlyFox or Saving with TiddlyFox on Android for detailed instructions.

Other Apps

Not sure about these, need to look at ... need to find time to look at ...

Pouch DB

PouchDB is an open-source JavaScript database inspired by Apache CouchDB that is designed to run well within the browser.

PouchDB was created to help web developers build applications that work as well offline as they do online.

It enables applications to store data locally while offline, then synchronize it with CouchDB and compatible servers when the application is back online, keeping the user's data in sync no matter where they next login.

See Erlang#CouchDB


zmqbus - A broker-less message bus with failover

Peer to peer messaging bus, zero setup with failover and pub/sub functionality.

Superfeedr - A full XMPP server using node-xmpp, with some modules.

Dependencies: "node-xmpp": ">=0.3.2", "redis": ">=0.7.1", "websocket": ">=1.0.4", "ltx": ">=0.1.3", "jsconfig": ">=0.2.0", "winston": ">=0.5.10"


A library for making AMQP 0-9-1 clients for Node.JS, and an AMQP 0-9-1 client for Node.JS v0.8, v0.9, v0.10, and v0.11. expects RabbitMQ

Contains the RabbitMQ tutorials, ported to amqplib. The sub-directory callback_api has translations of the tutorial programs to the callback-oriented API. - special instructions for building on windows, deal breaker ? - sqlite3 with no binaries


The xmlrpc module is a pure JavaScript XML-RPC server and client for node.js.

Pure JavaScript means that the XML parsing and XML building use pure JavaScript libraries, so no extra C dependencies or build requirements. The xmlrpc module can be used as an XML-RPC server, receiving method calls and responding with method responses, or as an XML-RPC client, making method calls and receiving method responses, or as both.

... a javascript client for magento’s API - Magento’s commercial ecommmerce solution

Das Pendant zum XML-RPC Client, der XML-RPC Server.

Good style in any case ...

These 58 software packages all depend on xmlrpc ( same as node-xmlrpc above )

... including amazingly ...

pypi is a simple client which can talk with Python Package Index.

Fire up coffee console and run:

coffee> pypi = require 'pypi'
coffee> client = new pypi.Client
coffee> client.getPackageReleases "Django", (versions) -> console.log versions

What the ... ???

See also - FireFox? give warning about expired certificate


Codebox is a complete and modular Cloud IDE. It can run on any unix-like machine (Linux, Mac OS X).

It is an open source component of (Cloud IDE as a Service) ...

Codebox is built with web technologies: node.js, javascript, html and less. The IDE possesses a very modular and extensible architecture, that allows you to build your own features with through add-ons. Codebox is the first open and modular IDE capable of running both on the Desktop and in the cloud (with offline support).

Node Webkit

Call all Node.js modules directly from DOM and enable a new way of writing applications with all Web technologies ...

Apps written in modern HTML5, CSS3, JS and WebGL.
Complete support for Node.js APIs and all its third party modules.
Good performance: Node and WebKit run in the same thread: Function calls are made straightforward; objects are in the same heap and can just reference each other;
Easy to package and distribute apps.
Available on Linux, Mac OS X and Windows

... It was previously known as "node-webkit" project ...

Sample apps for node-webkit

Lets you build your node-webkit apps for mac, win and linux via cli. It will download the prebuilt binaries for a newest version, unpacks it, creates a release folder, create the app.nw file for a specified directory and copies the app.nw file where it belongs.

App JS

AppJS project has not been actively developed for several months [ years actually ].

... Linux coming soon ...

Database Adaptors

Java Data

JayData? is a unified data access library for JavaScript to CRUD data from different sources like WebSQL/SQLite, IndexedDB, MongoDb?, ASP.NET WebAPI, OData, HTML5 localStorage, Facebook or YQL.

The library can be integrated with KendoUI, Knockout.js, Handlebars.js or Sencha Touch 2 and can be used on Node.js as well.

Interesting idea but vague on what it actually does.


Warehouse.js is a data storage layer for node.js and browser providing unified API for many supported storage engines (MongoDB, MySQL, SQLite, in-memory and others). You can create REST server or client with only few lines of code.

Supports multiple backends (MongoDB, MySQL, SQLite, in-memory and others)
Create REST server using few lines of code (compatible with Backbone.js)
Unified API for CRUD operations
Powerful query language RQL
MIT License

Again, interesting idea but do I really need the performance hit of a SQL generator.


CaminteJS is cross-db ORM for nodejs, providing common interface to access most popular database formats.

CaminteJS adapters: mysql, sqlite3, riak, postgres, couchdb, mongodb, redis, neo4j, firebird, rethinkdb, tingodb

Fairly straightforward. Last activity 5 months ago.

A MVC boilerplate for ExpressJS backed by CaminteJS and Bootstrap, based on Express MVC Bootstrap ...

Node.js: Amazing javascript asynchronous IO library, install manually.

NPM: Node package manager, used to install:

Express.Js: Application Framework for Node.js

Caminte.Js: Node.JS ORM for MongoDB, Postgres, MySQL, Redis, Nano etc.

EJS: Embedded Javascript Templating Library.

jQuery: Best Javascript Library

Bootstrap: Powerful front-end CSS/JS framework

Glyphicons: Fantastic library of precisely prepared monochromatic icons and symbols.

Juggling DB

NodeJS on Ubuntu and Mint Linux

Note: on Linux Mint and Ubuntu(?), the Node JS command 'node' conflicts with system commands. Consequently, Node JS is called by 'nodejs' rather than 'node'. This fouls up the Etherpad installation.

Go to scripts in the bin directory and change '' and '' to refelct call to 'nodejs' rather than 'node'. There are three of them, if memory servers.

Also See



Search wiki for 'nodejs'

Last modified 3 months ago Last modified on 01/27/2017 01:30:30 PM