Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

10
respostas

Mensagem de erro no node

Bom dia. Estou tenso essa mensagem de erro na aula 5 do curso do node.js.

Já verifiquei esse erro no arquivo, mas esse arquivo não foi alterado, apenas instalei.

Alguém sabe me explicar que erro é esse e como resolvo ele?

C:\Users\Seven\casadocodigo\node_modules\finalhandler\index.js:92
    if (!err && res._header) {
                   ^

TypeError: Cannot read property '_header' of undefined
    at C:\Users\Seven\casadocodigo\node_modules\finalhandler\index.js:92:20
    at EventEmitter.handle (C:\Users\Seven\casadocodigo\node_modules\express\lib
\application.js:170:5)
    at app (C:\Users\Seven\casadocodigo\node_modules\express\lib\express.js:38:9
)
    at module.exports (C:\Users\Seven\casadocodigo\config\express.js:7:12)
    at Object.<anonymous> (C:\Users\Seven\casadocodigo\app.js:1:100)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.runMain (module.js:604:10)
    at run (bootstrap_node.js:393:7)
    at startup (bootstrap_node.js:150:9)
    at bootstrap_node.js:508:3
[nodemon] app crashed - waiting for file changes before starting...
10 respostas

To achando que teve problema de versão com o node instalado... tenta trocar a versão para uma mais antiga?

Vinha versão é v6.10.1.

Esse é o código do index.js que está na pasta finalhandler dentro do node_modules.

// ignore 404 on in-flight response
    if (!err && res._header) {
      debug('cannot 404 after headers sent')
      return
    }

Opa, a versão que o curso foi grava ainda era a 4, como ele ainda não está atualizado, rola instalar essa? Ou se quiser, tenta pegar o código do curso disponibilizado nos exercícios e testar, só para a gente verificar.

Baixei o arquivo da 5 e agora o erro é esse.

C:\Users\Seven\casadocodigo>node app.js                        module.js:471                                                      throw err;                                                     ^                                                                                                                         Error: Cannot find module 'C:\Users\Seven\casadocodigo\app.js'     at Function.Module._resolveFilename (module.js:469:15)         at Function.Module._load (module.js:417:25)                    at Module.runMain (module.js:604:10)                           at run (bootstrap_node.js:393:7)                               at startup (bootstrap_node.js:150:9)                           at bootstrap_node.js:508:3

O erro anterior eu consegui resolver, mas agora estou tendo o erro com o 'length'.

TypeError: C:\Users\Seven\casadocodigo\app\views\produtos\lista.ejs:11
    9|             </tr>
    10|             <tr>
 >> 11|                 <% for(var i=0; i<lista.length; i++) {%>
    12|                     <tr>
    13|                         <td><%= lista[i].id %></td>
    14|                         <td><%= lista[i].titulo %></td>

Cannot read property 'length' of undefined
    at eval (eval at compile (C:\Users\Seven\casadocodigo\node_modules\ejs\lib\ejs.js:524:12), <anonymous>:11:28)
    at returnedFn (C:\Users\Seven\casadocodigo\node_modules\ejs\lib\ejs.js:555:17)
    at tryHandleCache (C:\Users\Seven\casadocodigo\node_modules\ejs\lib\ejs.js:203:34)
    at View.exports.renderFile [as engine] (C:\Users\Seven\casadocodigo\node_modules\ejs\lib\ejs.js:412:10)
    at View.render (C:\Users\Seven\casadocodigo\node_modules\express\lib\view.js:128:8)
    at tryRender (C:\Users\Seven\casadocodigo\node_modules\express\lib\application.js:640:10)
    at EventEmitter.render (C:\Users\Seven\casadocodigo\node_modules\express\lib\application.js:592:3)
    at ServerResponse.render (C:\Users\Seven\casadocodigo\node_modules\express\lib\response.js:966:7)
    at Object.html (C:\Users\Seven\casadocodigo\app\routes\produtos.js:10:25)
    at ServerResponse.res.format (C:\Users\Seven\casadocodigo\node_modules\express\lib\response.js:634:13)
    at Query._callback (C:\Users\Seven\casadocodigo\app\routes\produtos.js:8:17)
    at Query.Sequence.end (C:\Users\Seven\casadocodigo\node_modules\mysql\lib\protocol\sequences\Sequence.js:86:24)
    at C:\Users\Seven\casadocodigo\node_modules\mysql\lib\protocol\Protocol.js:399:18
    at Array.forEach (native)
    at C:\Users\Seven\casadocodigo\node_modules\mysql\lib\protocol\Protocol.js:398:13
    at _combinedTickCallback (internal/process/next_tick.js:73:7)

Fiz a instalação do node mais antigo, o 4, e baixei o arquivo das aulas. A form está aparecendo corretamente, mas no /produtos o erro persiste.

Esse é o erro:

TypeError: C:\Users\Seven\casadocodigo\app\views\produtos\lista.ejs:11
    9|             </tr>
    10|             <tr>
 >> 11|                 <% for(var i=0; i<lista.length; i++) {%>
    12|                     <tr>
    13|                         <td><%= lista[i].id %></td>
    14|                         <td><%= lista[i].titulo %></td>

Cannot read property 'length' of undefined
    at eval (eval at <anonymous> (C:\Users\Seven\casadocodigo\node_modules\ejs\lib\ejs.js:524:12), <anonymous>:11:28)
    at returnedFn (C:\Users\Seven\casadocodigo\node_modules\ejs\lib\ejs.js:555:17)
    at tryHandleCache (C:\Users\Seven\casadocodigo\node_modules\ejs\lib\ejs.js:203:34)
    at View.exports.renderFile [as engine] (C:\Users\Seven\casadocodigo\node_modules\ejs\lib\ejs.js:412:10)
    at View.render (C:\Users\Seven\casadocodigo\node_modules\express\lib\view.js:128:8)
    at tryRender (C:\Users\Seven\casadocodigo\node_modules\express\lib\application.js:640:10)
    at EventEmitter.render (C:\Users\Seven\casadocodigo\node_modules\express\lib\application.js:592:3)
    at ServerResponse.render (C:\Users\Seven\casadocodigo\node_modules\express\lib\response.js:966:7)
    at Object.res.format.html (C:\Users\Seven\casadocodigo\app\routes\produtos.js:10:25)
    at ServerResponse.res.format (C:\Users\Seven\casadocodigo\node_modules\express\lib\response.js:634:13)
    at Query._callback (C:\Users\Seven\casadocodigo\app\routes\produtos.js:8:17)
    at Query.Sequence.end (C:\Users\Seven\casadocodigo\node_modules\mysql\lib\protocol\sequences\Sequence.js:86:24)
    at C:\Users\Seven\casadocodigo\node_modules\mysql\lib\protocol\Protocol.js:399:18
    at Array.forEach (native)
    at C:\Users\Seven\casadocodigo\node_modules\mysql\lib\protocol\Protocol.js:398:13
    at doNTCallback0 (node.js:407:9)

Opa, ta rolando algum problema com a lista. Confere na rota, se está chegando algum erro... Provavelmente tem algum problema na query e não está sendo tratado.

Esse erro está persistindo até quando começo um projeto do zero. Fico travado nesta parte por causa desde erro.

ReferenceError: C:\Users\Seven\cadastra-membros\views\membros\cadastrados.ejs:10
    8|             </tr>

    9|             <tr>

 >> 10|                 <% for(var i=0; i<cadastrados.length; i++) {%>

    11|                     <tr>

    12|                         <td><%= cadastrados[i].mitrícula %></td>

    13|                         <td><%= cadastrados[i].nome %></td>


cadastrados is not defined
    at eval (eval at <anonymous> (C:\Users\Seven\cadastra-membros\node_modules\ejs\lib\ejs.js:524:12), <anonymous>:11:23)
    at returnedFn (C:\Users\Seven\cadastra-membros\node_modules\ejs\lib\ejs.js:555:17)
    at tryHandleCache (C:\Users\Seven\cadastra-membros\node_modules\ejs\lib\ejs.js:203:34)
    at View.exports.renderFile [as engine] (C:\Users\Seven\cadastra-membros\node_modules\ejs\lib\ejs.js:412:10)
    at View.render (C:\Users\Seven\cadastra-membros\node_modules\express\lib\view.js:128:8)
    at tryRender (C:\Users\Seven\cadastra-membros\node_modules\express\lib\application.js:640:10)
    at EventEmitter.render (C:\Users\Seven\cadastra-membros\node_modules\express\lib\application.js:592:3)
    at ServerResponse.render (C:\Users\Seven\cadastra-membros\node_modules\express\lib\response.js:966:7)
    at C:\Users\Seven\cadastra-membros\app.js:7:6
    at Layer.handle [as handle_request] (C:\Users\Seven\cadastra-membros\node_modules\express\lib\router\layer.js:95:5)

Este erro aconteceu comigo quando fiz a pesquisa de jquery e coloquei o nome da variável diferente.

Veja se no ProdutosDAO.lista esta {cadastrados: resultados}