In node.js, it being event-driven, all I/O is done via callbacks. So I end up writing code that looks like this:
app.get(\'/test\', function (req, res) {
ht
Another (and perhaps better) way to clean up this kind of thing is to use EventEmitters rather than callbacks. Here's an example showing several EventEmitters in use:
var events = require('events'), util = require('util'); var Search = function () { "use strict"; var search, requestPageData, makeReturnObject, sendResults, emptyObj = {}; events.EventEmitter.call(this); search = function (query) { this.emit("requestPageData", query); }; requestPageData = function (query) { var resultsArray = []; // some logic if (.....some condition....) { this.emit("makeReturnObject", resultsArray); } else { this.emit("sendResults", emptyObj); } }; makeReturnObject = function (resultsArray) { var resultsObj = {}; if (magnetArray) { // some logic this.emit("sendResults", resultsObj); } else { this.emit("sendResults", emptyObj); } }; sendResults = function (obj) { // finally, do whatever it is you want to do with obj }; this.on("requestPageData", requestPageData); this.on("makeReturnObject", makeReturnObject); this.on("sendResults", sendResults); this.search = search; }; util.inherits(Search, events.EventEmitter); module.exports = new Search();