I use the clouddns module to import ~ 800 domain names into a Rackspace account. I keep getting error message
TypeError: Cannot call method 'forEach' of undefined at _wrapDomains (/home/duet/www/git/node-rackspace/node_modules/clouddns/lib/clouddns/core.js:146:17) at /home/duet/www/git/node-rackspace/node_modules/clouddns/lib/clouddns/core.js:209:14 at Request._callback (/home/duet/www/git/node-rackspace/node_modules/clouddns/lib/clouddns/common.js:170:5) at Request.self.callback (/home/duet/www/git/node-rackspace/node_modules/clouddns/node_modules/request/main.js:120:22) at Request.EventEmitter.emit (events.js:98:17) at Request.<anonymous> (/home/duet/www/git/node-rackspace/node_modules/clouddns/node_modules/request/main.js:555:16) at Request.EventEmitter.emit (events.js:95:17) at IncomingMessage.<anonymous> (/home/duet/www/git/node-rackspace/node_modules/clouddns/node_modules/request/main.js:517:14) at IncomingMessage.EventEmitter.emit (events.js:117:20) at _stream_readable.js:920:16
After looking at the library file (core.js), I decided to drop a couple of log reports to see if I could figure out what was going on. Here is the code:
CloudDNS.prototype.getDomains = function getDomains(options, callback) { var args = Array.prototype.slice.call(arguments), callback = args[args.length - 1]; if (typeof callback !== 'function') { throw new Error("This method requires a callback"); } var self = this; var reqOpts = { method: 'GET', uri: this.dnsUrl('domains'), client: this } if ((arguments.length > 1) && (typeof arguments[0] === 'object')) { reqOpts.params = { name: args[0] } } this.rackspace(reqOpts, callback, function(body) { var result = JSON.parse(body); console.log(result.domains);
What amazes me is the fact that result.domains is defined before and after the method call, but inside this method it is "undefined". Can anyone shed some light on why this is happening?
source share