Recentemente, herdei um projeto Node.js e, cara, isso é assustador. O código estava bem escrito, mas sempre que se herda um projeto, herda-se instantaneamente o medo de estragar tudo. Meu objetivo era corrigir um bug bastante rotineiro, e encontrar o problema foi bastante fácil, mas rastrear o código para descobrir o que chamava o quê e o que passava o quê foi um pesadelo.
Então, fiz a única coisa que podia fazer para descobrir o que estava acontecendo:
// The magic
console.log(new Error().stack);
/* SAMPLE:
Error
at Object.module.exports.request (/home/vagrant/src/kumascript/lib/kumascript/caching.js:366:17)
at attempt (/home/vagrant/src/kumascript/lib/kumascript/loaders.js:180:24)
at ks_utils.Class.get (/home/vagrant/src/kumascript/lib/kumascript/loaders.js:194:9)
at /home/vagrant/src/kumascript/lib/kumascript/macros.js:282:24
at /home/vagrant/src/kumascript/node_modules/async/lib/async.js:118:13
at Array.forEach (native)
at _each (/home/vagrant/src/kumascript/node_modules/async/lib/async.js:39:24)
at Object.async.each (/home/vagrant/src/kumascript/node_modules/async/lib/async.js:117:9)
at ks_utils.Class.reloadTemplates (/home/vagrant/src/kumascript/lib/kumascript/macros.js:281:19)
at ks_utils.Class.process (/home/vagrant/src/kumascript/lib/kumascript/macros.js:217:15)
*/
É claro que o “erro” real não importa: o rastreamento da pilha é exatamente o que o senhor precisa para descobrir o que está chamando o que na cadeia. Quando disponível, o senhor também pode usar console.trace() (quando disponível) para obter praticamente o mesmo resultado. O senhor pode me agradecer depois!
Corrigindo a impressão sIFR com CSS e MooTools
Embora eu não seja um grande defensor do sIFR, posso entender seu fascínio. Recentemente, um cliente nos pediu para implementar o sIFR em seu site, mas encontrei um problema: os cabeçalhos do sIFR não eram impressos porque eram objetos do Flash. Veja como corrigir…
DWRequest: MooTools 1.2 AJAX Listener & Message Display
Embora o MooTools 1.2 esteja em seu segundo estágio beta, sua sintaxe básica e as mudanças teóricas já foram definidas. A biblioteca JavaScript continua a melhorar e a se tornar mais flexível. O colega DZone Zone Leader Boyan Kostadinov escreveu um artigo muito útil detalhando como o senhor pode adicionar um…

