Sou relativamente novo no hacking hardcore do Node.js, portanto, estou vendo todos os tipos de erros novos e adoráveis que não tenho a menor ideia de como resolver quando os vejo inicialmente. Até agora, consegui manter um sorriso no rosto enquanto tentava corrigir esses erros, uma qualidade que gosto muito em mim. Um dos erros recentes que encontrei foi com o child_process
em que ocorria um erro em um execSync
e todo o aplicativo travaria; nem mesmo um try/catch
me salvaria. No entanto, encontrei uma solução.
O JavaScript
A melhor maneira de detectar erros sem deixar seu aplicativo bloqueado é usar o spawn
(ou, neste caso, o spawnSync
):
var childProcess = require('child_process'); var commitMessage = (function() { var spawn = childProcess.spawnSync('git', ['log', '--format=%B', '-n', '1']); var errorText = spawn.stderr.toString().trim(); if (errorText) { console.log('Fatal error from `git log`. You must have one commit before deploying.'); throw new Error(errorText); } else { return spawn.stdout.toString().trim(); } })();
Com esse método, o senhor pode verificar o stderr
primeiro; se houver uma String nela, o senhor sabe que houve erro; se não houver texto de erro, o processo foi limpo!
Animação CSS vs. JS: O que é mais rápido?
Como é possível que a animação baseada em JavaScript sempre tenha sido secretamente tão rápida – ou mais rápida – do que as transições CSS? E, como é possível que a Adobe e o Google lancem consistentemente sites móveis ricos em mídia que rivalizam com o desempenho de aplicativos nativos?