Node.js – EJS示例

我正在尝试使用embedded式JavaScript渲染器的节点。 我使用npm安装它,如下所示: https : //github.com/visionmedia/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); 

任何帮助不胜感激。

       

网上收集的解决方案 "Node.js – EJS示例"

你需要发送一些回应。 从连接你好世界

 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'); 

所以对于你的应用程序,你需要replace:

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

像这样的东西:

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

那样有用吗?

试试这个:(假设你已经安装了express和ejs模块)

 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); 

并在'./views'中放置一个视图。 调用它'index.ejs'并填充一些html:

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

为我工作!

设置你的视图引擎使用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 });