Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

App não roda no heroku

Olá pessoal, após fazer deploy no heroku e tentar acessar a aplicação o app não carrega, esta é a mensagem que está nos logs:

app/node_modules/express-validator/lib/express_validator.js:75 chain[name] - (...options) => {

SyntaxError: Unexpected token ...

Parece que ele não está identificando este ..., o spread operator.

No meu package.json estava configurado no engines pra usar o node versão 4.1.1, o que seria o problema segundo alguns posts que vi, alterei para 5.9.1 mas parece que no heroku ele não mudou a versão, não sei o que pode estar acontecendo pra ele ainda não estar identificando o operador "...".

não encontrei muita coisa procurando online mas já tentei executar a solução a seguir, também sem sucesso:

heroku config:set NODE_MODULES_CACHE=false
git commit -am 'rebuild' --allow-empty
git push heroku master
heroku unset NODE_MODULES_CACHE

Alguém sabe como resolver o problema?

4 respostas

Oi Rafael, acho que para suportar o spread operator você precisa do node 5.12 ou maior. Pelo menos de acordo com a documetnação => http://node.green/

Em relação ao heroku, eu apagaria a app e criaria de novo, só pq é um teste mesmo :).

Ah, vou tentar mudar a versão do node pra uma mais nova!

Oi Alberto, atualizei a versão do node, agora o erro parece que é outro, mas ainda não entendi direito, estas são as mensagens que tenho no log agora:

servidor rodando com express
State changed from starting to up
heroku[router]: at=info method=GET path="/" host=japa-nodejs.herokuapp.com request_id=de9815d5-8a21-40d2-9
f28-93d395f54eff fwd="191.35.51.142" dyno=web.1 connect=1ms service=261ms status=500 bytes=393 protocol=https
events.js:160
throw er; // Unhandled 'error' event
Error: Quit inactivity timeout
at Quit.<anonymous> (/app/node_modules/mysql/lib/protocol/Protocol.js:164:17)
at emitNone (events.js:86:13)
at Quit.emit (events.js:185:7)
 at Quit._onTimeout (/app/node_modules/mysql/lib/protocol/sequences/Sequence.js:129:8)
at ontimeout (timers.js:386:14)
at tryOnTimeout (timers.js:250:5)
at Timer.listOnTimeout (timers.js:214:5)
solução!

Opa, consegui finalmente fazer meu app rodar no heroku! Depois de arrumar o problema da versão do node, deu um outro erro que parece que é de timeout do mysql, achei este tópico onde o colega explica com detalhes como fez pra arrumar:

https://cursos.alura.com.br/forum/topico-local-funciona-bem-da-crash-no-heroku-error-quit-inactivity-timeout-22985

Vou deixar aqui para que sirva de auxílio caso outros alunos passem pelo mesmo problema. =]

Caso alguém quiser olhar o meu repositório também: https://bitbucket.org/rafaoliveira/nodejs-casadocodigo/src