Nodejs 大家都用哪个模板引擎?官方推荐是jade吗?

发布于 1周前 作者 bupafengyu 来自 nodejs/Nestjs

Nodejs 大家都用哪个模板引擎?官方推荐是jade吗?

RT

7 回复

当然可以!以下是针对你提供的标题和内容的详细回答:


Node.js 大家都用哪个模板引擎?官方推荐是 Jade 吗?

在 Node.js 开发中,选择一个合适的模板引擎是非常重要的。目前,有许多流行的模板引擎可供选择,例如 EJS、Pug(以前称为 Jade)、Handlebars 等。

当前最常用的模板引擎

  1. EJS (Embedded JavaScript)

    • EJS 是一个简单且功能强大的模板引擎,它允许你在 HTML 文件中嵌入 JavaScript 代码。
    • 优点:语法简单易懂,与 HTML 非常相似,易于上手。
    • 缺点:性能可能不如其他一些模板引擎。
  2. Pug(原名 Jade)

    • Pug 是一种简洁、优雅的模板引擎,它的语法非常干净和直观。
    • 优点:语法简洁,代码可读性高。
    • 缺点:学习曲线稍陡,因为其语法与传统 HTML 不同。
  3. Handlebars

    • Handlebars 是一种无逻辑的模板引擎,它允许你在模板中使用简单的逻辑表达式。
    • 优点:支持部分模板和条件逻辑,适用于复杂的应用场景。
    • 缺点:语法相对复杂,学习成本较高。

官方推荐

目前,Node.js 的官方文档并没有明确推荐某个特定的模板引擎。不过,Pug 曾经被广泛推荐,但现在 Pug 已经不再由 Node.js 官方直接维护和支持。

示例代码

以 Pug 为例,以下是一个简单的示例代码:

// app.js
const express = require('express');
const app = express();

app.set('view engine', 'pug');

app.get('/', (req, res) => {
    res.render('index', { title: 'Hello World!', message: 'Welcome to my site!' });
});

app.listen(3000, () => {
    console.log('Server is running on port 3000');
});

对应的 Pug 模板文件 views/index.pug 如下:

doctype html
html(lang="en")
  head
    title #{title}
  body
    h1 #{message}

以上代码创建了一个简单的 Express 应用,使用 Pug 作为视图引擎,并渲染一个包含动态数据的页面。

希望这些信息对你有所帮助!如果你有任何进一步的问题,请随时提问!


希望这个回答能满足你的需求!如果有任何其他问题或需要进一步的解释,请告诉我。


以前看过一篇文章,貌似ejs要比jade性能更好?

Jade 是喜欢缩进语法的人用用的… 不是官方推荐的 不过 Jade 作者同时也是 Express 框架的作者, 知名度很高就是了

ejs 我感觉这个更符合习惯,尤其是前段切页面的时候。

Node.js 模板引擎选择

在 Node.js 中,常用的模板引擎包括 EJS、Pug(之前称为 Jade)、Handlebars 等。官方并没有明确推荐某个特定的模板引擎,而是让开发者根据项目需求和个人偏好来选择。

Pug (以前叫 Jade)

尽管 Pug 在社区中仍被广泛使用,但官方已经不再维护它。如果你需要一个成熟的、仍在积极开发中的模板引擎,可以考虑使用其他选项。

Pug 示例代码:

const express = require('express');
const app = express();

app.set('view engine', 'pug');

app.get('/', function(req, res) {
    res.render('index', { title: 'Homepage', message: 'Hello Pug!' });
});

app.listen(3000);

对应的 views/index.pug 文件:

doctype html
html
  head
    title #{title}
  body
    h1 #{message}

EJS

EJS 是一个简单易用的模板引擎,适用于简单的项目。

EJS 示例代码:

const express = require('express');
const app = express();

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

app.get('/', function(req, res) {
    res.render('index', { title: 'Homepage', message: 'Hello EJS!' });
});

app.listen(3000);

对应的 views/index.ejs 文件:

<!DOCTYPE html>
<html>
<head>
    <title><%= title %></title>
</head>
<body>
    <h1><%= message %></h1>
</body>
</html>

Handlebars

Handlebars 提供了更复杂的逻辑支持,并且是一个流行的模板引擎。

Handlebars 示例代码:

const express = require('express');
const exphbs  = require('express-handlebars');
const app = express();

app.engine('handlebars', exphbs());
app.set('view engine', 'handlebars');

app.get('/', function(req, res) {
    res.render('index', { title: 'Homepage', message: 'Hello Handlebars!' });
});

app.listen(3000);

对应的 views/index.handlebars 文件:

<!DOCTYPE html>
<html>
<head>
    <title>{{title}}</title>
</head>
<body>
    <h1>{{message}}</h1>
</body>
</html>

总结

虽然官方没有特别推荐某个模板引擎,但可以根据具体需求选择合适的模板引擎。如果需要一个易于上手的,可以选择 EJS;如果需要更复杂的逻辑支持,可以选择 Handlebars;而 Pug 虽然功能强大,但社区维护不如前两者活跃。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!