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

Erro persistente, até estou desistimulao a continuar o curso.

Estou tentando fazer minha aplicação a minutos, sinceramente estou quase desistindo de Node.js. Nao consigo achar nenhuma anomalia que cause o problema

Possuo o diretório: views/home.pug

Minhas dependências:

"dependencies": {
    "express": "^4.15.2",
    "jade": "^1.11.0",
    "pug": "^2.0.0-beta11"
  }


//Meu código:
var express = require('express');
var app = express();

app.set('view engine', 'pug');

app.get('/', function (rq, rp) {
   rp.render("views/home");
});

app.listen(80, function () {
    console.log('OK');
});

Erro:

Error: Failed to lookup view "views/home" in views directory "C:\Program Files (x86)\Ampps\www\node-study\views"
    at EventEmitter.render (C:\Program Files (x86)\Ampps\www\node-study\node_modules\express\lib\application.js:580:17)
    at ServerResponse.render (C:\Program Files (x86)\Ampps\www\node-study\node_modules\express\lib\response.js:966:7)
    at C:\Program Files (x86)\Ampps\www\node-study\nodeServer.js:7:7
    at Layer.handle [as handle_request] (C:\Program Files (x86)\Ampps\www\node-study\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\Program Files (x86)\Ampps\www\node-study\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (C:\Program Files (x86)\Ampps\www\node-study\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (C:\Program Files (x86)\Ampps\www\node-study\node_modules\express\lib\router\layer.js:95:5)
    at C:\Program Files (x86)\Ampps\www\node-study\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (C:\Program Files (x86)\Ampps\www\node-study\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Program Files (x86)\Ampps\www\node-study\node_modules\express\lib\router\index.js:275:10)
2 respostas

Olá Jefferson, posso estar enganado pois também sou iniciante no assunto, mas acredito que o node já esteja procurando por arquivos ou diretórios dentro da sua pasta views.

Observe o erro:

Error: Failed to lookup view "views/home" in views directory "C:\Program Files (x86)\Ampps\www\node-study\views"

Falha ao pesquisar a view "views/home" /*(no caso a view que você estipulou)*/ no diretório de visualizações "C:\Program Files (x86)\Ampps\www\node-study\views"

Então ele já sabe que deve olhar em views, então você não precisa mencionar isto. No caso seria como se ele estivesse tentando carregar: "C:\Program Files (x86)\Ampps\www\node-study\views\VIEWS\HOME".

Tente utilizar apenas: rp.render("home").

solução!

Olá Jefferson, o problema no seu code esta nessa linha

app.get('/', function (rq, rp) {
   rp.render("views/home");
});

por default o express seta a pasta default como views então quando você vai chamar alguma page que esteja dentro dessa pasta você só precisa chamar o nome dela

EX:

app.get('/', function (rq, rp) {
   rp.render("home");
});