2011-01-05 7 views
13

노드에 Embedded Javascript 렌더러를 사용하려고합니다. https://github.com/visionmedia/ejsNode.js - EJS 예제

그리고 나는 다음과 같은 코드를 가지고 있지만, 작동하지 않는 것 :

var connect = require('connect'), 
ejs = require('ejs'); 

var server = connect.createServer(
    connect.bodyDecoder(), 
    connect.methodOverride(), 
    connect.staticProvider(__dirname + '/public'), 
    function(req,res) { 
    ejs.render('hi'); 
    } 
); 


server.listen(9000); 

어떤 도움이 크게 감사합니다 여기에 주어진 나는, NPM을 사용하여 설치했습니다.

답변

11

응답에 무엇인가를 보내야합니다. 앱 그래서 connect hello-world

var connect = require('../../lib/connect'); 

var server = connect.createServer(function(req, res){ 
    var body = 'Hello World'; 
    res.writeHead(200, { 
     'Content-Type': 'text/plain' 
    , 'Content-Length': body.length 
    }); 
    res.end(body); 
}); 

server.listen(3000); 
console.log('Connect server listening on port 3000'); 

에서 당신은 교체 할 수 있습니다 :

function(req,res) { 
ejs.render('hi'); 
} 

을 같은으로 :

function(req,res) { 
    res.writeHead(200, { 'Content-Type': 'text/plain' }); 
    res.end(ejs.render('hi')); 
} 

가 그 일을합니까?

var express = require('express'); 
var app = express.createServer(); 
app.configure(function() { 
    app.use(express.bodyParser()); 
    app.use(express.static('./static/')); 
    app.use(app.router); 
}); 
app.set('view engine', 'ejs'); 
app.set('view options', { 
    layout: false 
}); 
app.get('/', function(req, res) { 
res.render('index', { 
    message : 'De groeten' 
}); 
}); 
app.listen(3000); 

를 (설치 명시하고 EJS 모듈이 가정)와 './views'에서보기를 넣어 :

+0

감사합니다. – jeffreyveon

11

이 시도. 'index.ejs'라고하고 일부 html로 채우십시오 :

<html> 
<head> 
<title></title> 
</head> 

<body> 
<p> 
<%= message %> 
</p> 
</body> 
</html> 

저에게 맞는 작품입니다!

+0

이 답변이 맞는지는 모르겠지만 - 원래 질문을 가득 채우십시오. 하지만 모델을 ejs 엔진에 전달하는 방법을 찾고 있었고 명확하게 보여줍니다! 고마워요! :) –

+0

같은, 매우 유용! – vaettchen

0

ejs를 사용하도록보기 엔진을 설정하십시오.

app.set("view engine", "ejs"); 

브라우저에서 서버에 액세스 할 때 무언가를로드 할 수 있도록 루트 경로를 설정하십시오 (아래 참조).

var app = express(); 

// ROOT ROUTE 
app.get("/", function(req, res) { 
    res.render("landingpage"); // use to render an ejs template page 
    res.send("hello world"); // to render an empty page with the hello world message 
});