Nodejs 请教如何在node里面使用ejs

Nodejs 请教如何在node里面使用ejs

意思就是我想

var cc = new EJS(文件内容).render(数据)

我试了

var ejs = require(‘ejs’); 这是一个对象不是函数不能new var cc = new ejs(x)

4 回复

当然可以!以下是关于如何在 Node.js 中使用 EJS 的详细解答:

如何在 Node.js 中使用 EJS

EJS(Embedded JavaScript)是一种简单的模板引擎,用于将动态内容嵌入到静态 HTML 文件中。下面是如何在 Node.js 中使用 EJS 的步骤和示例代码。

步骤 1: 安装 EJS

首先,你需要安装 EJS 模块。可以通过 npm 来安装:

npm install ejs

步骤 2: 创建一个 EJS 模板

假设你有一个名为 index.ejs 的模板文件,内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title><%= title %></title>
</head>
<body>
    <h1><%= message %></h1>
</body>
</html>

在这个模板中,<%= title %><%= message %> 是占位符,它们会在渲染时被替换为实际的数据。

步骤 3: 渲染 EJS 模板

接下来,在你的 Node.js 应用程序中使用 EJS 渲染模板。以下是一个简单的示例:

// 引入 EJS 模块
const ejs = require('ejs');

// 要传递给模板的数据
const data = {
    title: 'Hello World',
    message: 'This is a test message.'
};

// 渲染 EJS 模板并输出结果
ejs.renderFile('./views/index.ejs', data, (err, str) => {
    if (err) {
        console.log('Error rendering template:', err);
    } else {
        console.log(str);
    }
});

解释

  1. 引入 EJS 模块

    const ejs = require('ejs');
    
  2. 定义数据

    const data = {
        title: 'Hello World',
        message: 'This is a test message.'
    };
    
  3. 渲染模板

    ejs.renderFile('./views/index.ejs', data, (err, str) => {
        if (err) {
            console.log('Error rendering template:', err);
        } else {
            console.log(str);
        }
    });
    
    • ejs.renderFile 方法接受三个参数:模板文件路径、要传递的数据对象以及回调函数。
    • 如果有错误发生,它会通过回调函数返回错误信息。
    • 如果没有错误,它会返回渲染后的字符串。

如果你希望直接从字符串而不是文件中渲染 EJS 模板,可以使用 ejs.render 方法:

const ejs = require('ejs');

const template = `
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title><%= title %></title>
</head>
<body>
    <h1><%= message %></h1>
</body>
</html>
`;

const data = {
    title: 'Hello World',
    message: 'This is a test message.'
};

const result = ejs.render(template, data);
console.log(result);

这样,你就可以在 Node.js 中使用 EJS 模板引擎了!


看了ejs.js源码, 发现直接用ejs.render()就可以了

var ejs = require(‘ejs’); ejs.render();

在Node.js中使用EJS(Embedded JavaScript templates)模板引擎时,你不能直接使用new关键字来实例化EJS。你需要使用EJS提供的render方法来渲染模板。

示例代码

  1. 安装EJS 首先确保你已经安装了EJS。你可以使用npm来安装它:

    npm install ejs
    
  2. 创建EJS模板文件 创建一个名为index.ejs的文件,内容如下:

    <!DOCTYPE html>
    <html>
    <head>
        <title><%= title %></title>
    </head>
    <body>
        <h1><%= message %></h1>
    </body>
    </html>
    
  3. 渲染模板 在你的Node.js应用中,使用以下代码来渲染EJS模板:

    const ejs = require('ejs');
    const fs = require('fs');
    
    // 读取EJS模板文件
    const template = fs.readFileSync('./index.ejs', 'utf8');
    
    // 渲染模板
    ejs.render(template, { title: '欢迎页面', message: 'Hello World!' }, (err, result) => {
        if (err) {
            console.error(err);
            return;
        }
        console.log(result);
    });
    

解释

  • ejs.render 方法接受三个参数:

    1. 模板字符串或模板文件路径。
    2. 数据对象,包含模板中使用的变量。
    3. 回调函数,用于处理渲染结果或错误。
  • 如果你想将渲染后的HTML字符串直接赋值给一个变量,可以使用同步版本的方法:

    const ejs = require('ejs');
    
    // 读取EJS模板文件
    const template = fs.readFileSync('./index.ejs', 'utf8');
    
    // 渲染模板并赋值给变量
    const result = ejs.render(template, { title: '欢迎页面', message: 'Hello World!' });
    
    console.log(result);
    

这样,你就可以在Node.js中正确地使用EJS模板引擎来渲染HTML了。

回到顶部