📜  在 Node.js 中使用 EJS 作为模板引擎

📅  最后修改于: 2022-05-13 01:56:39.833000             🧑  作者: Mango

在 Node.js 中使用 EJS 作为模板引擎

EJS: EJS 或 Embedded Javascript Templating 是 Node.js 使用的模板引擎。模板引擎有助于用最少的代码创建 HTML 模板。此外,它还可以在客户端将数据注入 HTML 模板并生成最终的 HTML。 EJS 是一种简单的模板语言,用于使用纯 JavaScript 生成 HTML 标记。它还有助于将 JavaScript 嵌入 HTML 页面。首先,使用 EJS 作为模板引擎,我们需要使用给定的命令安装 EJS:

npm install ejs --save

注意:上述命令中的 npm 代表节点包管理器,安装所有依赖项的地方。在 Node 5.0.0 版本之后不再需要 --save 标志,因为我们现在安装的所有模块都将添加到依赖项中。
现在,我们需要做的第一件事是使用 Express 将 EJS 设置为我们的模板引擎,Express 是一个 Node.js Web 应用程序服务器框架,专为构建单页、多页和混合 Web 应用程序而设计。它已成为 node.js 的标准服务器框架。

Javascript
// Set express as Node.js web application
// server framework.
// To install express before using it as
// an application server by using
// "npm install express" command.
var express = require('express');
var app = express();
 
// Set EJS as templating engine
app.set('view engine', 'ejs');


HTML


 

    Home Page
     
    

 

    
This is our home page.
 


Javascript
app.get('/', (req, res)=>{
 
// The render method takes the name of the HTML
// page to be rendered as input
// This page should be in the views folder
// in the root directory.
res.render('home');
 
});


Javascript
app.get('/', (req, res)=>{
 
// The render method takes the name of the HTML
// page to be rendered as input.
// This page should be in views folder in
// the root directory.
// We can pass multiple properties and values
// as an object, here we are passing the only name
res.render('home', {name:'Akashdeep'});
 
});
 
var server = app.listen(4000, function(){
    console.log('listening to port 4000')
});


html



    Home Page
    


    
        This is our home page.
        Welcome <%=name%>, to our home page.     


Javascript
app.get('/', (req, res)=>{
 
// The render method takes the name of the html
// page to be rendered as input.
// This page should be in views folder
// in the root directory.
var data = {name:'Akashdeep',
    hobbies:['playing football', 'playing chess', 'cycling']}
 
res.render('home', {data:data});
});
 
var server = app.listen(4000, function() {
    console.log('listening to port 4000')
});


HTML



    Home Page
    

 

    Hobbies of <%=data.name%> are:
          
            <% data.hobbies.forEach((item)=>{%>         
  • <%=item%>
  •         <%});%>     
 


EJS 的默认行为是查看“views”文件夹以供模板呈现。因此,让我们在我们的主节点项目文件夹中创建一个“views”文件夹,并创建一个名为“home.ejs”的文件,该文件将在我们的节点项目中满足某些所需的请求。这个页面的内容是:

HTML



 

    Home Page
     
    

 

    
This is our home page.
     

现在,我们将根据用户的某个请求呈现此页面:

Javascript

app.get('/', (req, res)=>{
 
// The render method takes the name of the HTML
// page to be rendered as input
// This page should be in the views folder
// in the root directory.
res.render('home');
 
});

现在,页面 home.ejs 将显示在请求 localhost 上。要添加动态内容,此渲染方法需要第二个参数,它是一个对象。这是这样做的:

Javascript

app.get('/', (req, res)=>{
 
// The render method takes the name of the HTML
// page to be rendered as input.
// This page should be in views folder in
// the root directory.
// We can pass multiple properties and values
// as an object, here we are passing the only name
res.render('home', {name:'Akashdeep'});
 
});
 
var server = app.listen(4000, function(){
    console.log('listening to port 4000')
});

现在,我们将名称嵌入到 HTML 页面中:

html




    Home Page
    


    
        This is our home page.
        Welcome <%=name%>, to our home page.     
                   

它用于将动态内容嵌入到页面中,并用于嵌入普通的 JavaScript。现在嵌入普通的 JavaScript:

Javascript

app.get('/', (req, res)=>{
 
// The render method takes the name of the html
// page to be rendered as input.
// This page should be in views folder
// in the root directory.
var data = {name:'Akashdeep',
    hobbies:['playing football', 'playing chess', 'cycling']}
 
res.render('home', {data:data});
});
 
var server = app.listen(4000, function() {
    console.log('listening to port 4000')
});

最终的 HTML 内容:

HTML




    Home Page
    

 

    Hobbies of <%=data.name%> are:
          
            <% data.hobbies.forEach((item)=>{%>         
  • <%=item%>
  •         <%});%>     
 

运行程序的步骤:

  • 创建所有文件后,转到项目文件夹的根目录。
  • 在此目录中运行命令提示符。
  • 键入 node file_name.js 命令以运行您的程序并查看显示的输出。

输出: