Node.js - EJS example

后端 未结 3 518
没有蜡笔的小新
没有蜡笔的小新 2021-02-05 15:14

I am trying to use Embedded Javascript renderer for node. I installed it using npm, as given here: https://github.com/visionmedia/ejs

And I have the following code, but

相关标签:
3条回答
  • 2021-02-05 15:35

    Set your view engine to use ejs.

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

    Now set up the root route so that it will load something when you access your server from a browser, see below.

    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
    });
    
    0 讨论(0)
  • 2021-02-05 15:38

    try this: (assuming you have the express and ejs modules installed)

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

    and put a view in './views'. call it 'index.ejs' and fill it with some html:

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

    works for me!

    0 讨论(0)
  • 2021-02-05 15:50

    You need to send something to the response. From the 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');
    

    So for your app you'll want to replace:

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

    With something like:

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

    Does that work?

    0 讨论(0)
提交回复
热议问题