Eu estou tentando executar um exemplo simples de node.js com modelos EJS. Node, ou melhor, express é incapaz de renderizar a página de índice, como no código a seguir, com layout.ejs, não importa o que eu faça.
Aqui está o app.js
var express = require("express")
, routes = require("./routes")
, http = require("http");
var app = express();
app.configure(function(){
app.set("port", process.env.PORT || 8001);
app.set("views", __dirname + "/views");
app.set("view engine", "ejs");
app.set("view options", {layout: "views/layout.ejs"});
app.use(express.favicon());
app.use(express.logger("dev"));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + "/public"));
});
app.configure("development", function(){
app.use(express.errorHandler());
});
app.get("/", routes.index);
http.createServer(app).listen(app.get("port"), function(){
console.log("Express server listening on port " + app.get("port"));
});
layout.ejs
<!DOCTYPE html>
<html>
<head> <title><%= title %></title> </head>
<body> <%- body %> </body>
</html>
E no index.ejs, é só isso
<p> Some Text </p>
Eu perdi alguma coisa aqui?
Respostas:
3 para resposta № 1app.set("view options", { layout:"layout.ejs" });
remova as visões / e deve funcionar.