【问题标题】:Node.js - EJS exampleNode.js - EJS 示例
【发布时间】:2011-06-03 19:27:43
【问题描述】:

我正在尝试为节点使用嵌入式 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


    【解决方案1】:

    您需要向响应发送一些内容。来自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'));
    }
    

    这行得通吗?

    【讨论】:

      【解决方案2】:

      试试这个:(假设你安装了 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 引擎的方法,并且清楚地显示了它!谢谢你,兄弟! :)
      • 这里也一样,很有用!
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-19
        • 1970-01-01
        • 1970-01-01
        • 2011-07-21
        • 2012-11-12
        • 2019-07-18
        • 2016-07-13
        相关资源
        最近更新 更多