nodejs 返回html页面--使用 ejs 模板

Posted 吃饭了吗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs 返回html页面--使用 ejs 模板相关的知识,希望对你有一定的参考价值。

nodejs 返回html页面--使用 ejs 模板

 

nodejs 可以直接在返回中使用html标签,例如下面的格式,返回 hello world 将会使用 h1 字体。

app.get(\'/html\',function(req,res){
  res.status(200).send(\'<h1>hello world</h1>\');
});

 

"E" is for "effective." EJS is a simple templating language that lets you generate HTML markup with plain javascript

安装ejs: npm install ejs 

例子一:

test_163:/home/exenode/jike # more ejslearn.js 
var express = require(\'express\');

var app = express();

app.set(\'view engine\',\'ejs\');
app.set(\'views\', __dirname + \'/views\');       //设置模板文件文件夹,__dirname为全局变量,表示网站根目录。把view目录下的文件设置成模板文件。

app.get(\'/\',function(req,res){
  res.render(\'home.ejs\',{name:\'zzz\'});    //向页面模板传递参数,可以传递字符串和对象。 并且把页面模板返回给客户端。以json的格式传给 模板页面。

});

app.listen(3002);
test_163:/home/exenode/jike # more views/home.ejs 
<html>
  <head>
    <title> new template </title>
  </head>
  <body>
    <p>Hello jikexueyuan</p>
    <p>Hi <%= name %></p>
  </body>
</html>

输出的html页面显示:

Hello jikexueyuan

Hi zzz

 

例子二:

test_163:/home/exenode/jike # more ejslearn.js 
var express = require(\'express\');
var app = express();

app.set(\'view engine\',\'ejs\');
app.set(\'views\', __dirname + \'/views\');

app.get(\'/\',function(req,res){
  res.render(\'home.ejs\',{name:\'zzz\'});
});

app.get(\'/request/:name\',function(req,res){                                         //设置请求url中 request 后的字符串,保存到 name 这个变量中。
  // var locals = {name:\'westbrook\',\'name\':req.params[\'name\']};       
  var locals = {name:req.params[\'name\']}                                       // 把 req.params[\'name\'] 的值作为 字典locals 的 key name 的值。 
  res.render(\'home.ejs\',locals);
});

app.listen(3002);
test_163:/home/exenode/jike # 
test_163:/home/exenode/jike # more views/home.ejs 
<html>
  <head>
    <title> new template </title>
  </head>
  <body>
    <p>Hello jikexueyuan</p>
    <p>Hi <%= name %></p>                             //获取name的值。
    <p>name:<%= name %></p>                        //获取name的值。

   </body>
</html>

结果:

在前台浏览器中访问: http://192.168.1.163:3002/request/test123  ,页面显示:

Hello jikexueyuan

Hi test123

my name is:test123

 
分类: 前端

以上是关于nodejs 返回html页面--使用 ejs 模板的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Nodejs/mongodb/mongoose 在 ejs/html 中显示数据库项目?

头部带有脚本的 Nodejs EJS 部分

nodeJS - 修改 HTML 文件以显示图像

nodejs + mongodb + ejs + express 实现页面展示 connection

使用Nodejs将数据发送到header.ejs

我们可以在 Node JS 应用程序中使用带有 ejs(嵌入式 javascript)的 socket.io 而不是 html 页面吗?