首页 > 编程语言 >nodejs中使用Nunjucks 模板引擎

nodejs中使用Nunjucks 模板引擎

时间:2024-04-04 21:11:54浏览次数:22  
标签:Nunjucks const nodejs Koa app nunjucks 模板

要在 Koa 2 中使用 Nunjucks 模板引擎,你需要进行一些额外的设置。以下是一个示例代码,演示了如何在 Koa 2 中集成 Nunjucks:

首先,确保已经安装了 Koa 和 Nunjucks:

npm install koa nunjucks

然后,在项目中创建一个名为 app.js 的文件,并添加以下代码:

const Koa = require('koa');
const nunjucks = require('nunjucks');
const path = require('path');

const app = new Koa();

// 配置 Nunjucks 模板引擎
nunjucks.configure(path.join(__dirname, 'views'), {
    autoescape: true,
    noCache: true,
    express: app
});

// 中间件处理
app.use(async (ctx) => {
    // 渲染模板
    await ctx.render('index.html', {
        title: 'Hello Nunjucks!',
        message: 'Welcome to Koa 2 with Nunjucks!'
    });
});

// 启动服务器
const port = 3000;
app.listen(port, () => {
    console.log(`Server is running on http://localhost:${port}`);
});

在这个示例中:

  • 我们引入了 Koa、Nunjucks 和 path 模块。
  • 创建了一个 Koa 应用实例。
  • 使用 nunjucks.configure() 方法配置了 Nunjucks 模板引擎。在这里,我们指定了模板文件的路径为 views 文件夹,启用了自动转义,并禁用了模板缓存以方便开发调试。
  • 在中间件中使用 ctx.render() 方法来渲染模板。这个方法会自动将渲染结果作为响应发送给客户端。
  • 启动了服务器并监听在 3000 端口。

接下来,在项目根目录下创建一个名为 views 的文件夹,并在其中创建一个名为 index.html 的模板文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{ title }}</title>
</head>
<body>
    <h1>{{ title }}</h1>
    <p>{{ message }}</p>
</body>
</html>

最后,在命令行中运行以下命令启动应用:

node app.js

现在,打开浏览器并访问 http://localhost:3000,你应该能够看到渲染后的模板页面,显示了从服务器发送的数据。

标签:Nunjucks,const,nodejs,Koa,app,nunjucks,模板
From: https://www.cnblogs.com/yuyanc/p/18114601

相关文章

  • 【Java】PDF模板生成PDF文档
    一、需求背景客户要求一份文书,文书内容有一些表单项,例如:1、基本的是和否(单选框或复选框)2、备注内容(纯文本信息)3、单位,机构组织,人员,字典项(下拉选择)4、用户数字签名(图片信息)文书的模板是固定不变的,只需要把上述信息写入模板中生成即可这个模板不是动态的,动态模板是表单数据......
  • P2613 【模板】有理数取余
    原题链接题解然后就变成了求解同余方程code#definelllonglong#include<bits/stdc++.h>constllmod=19260817;usingnamespacestd;llx,y;llc;lla,b;inlinevoidread(ll&x){x=0;llflag=1;charc=getchar();while(c<'0......
  • C++ templates: (1)、类模板
    1、类模板定义(主模板)template<typenameT,typenameC=list<T>,intMAX=10>classStack{public:usingvalue_type=T;public:Stack(constT&a):m_oContainer{move(a)}{cout<<"Stack<T,list<T>>()"<<......
  • 请描述一下Velocity模板中的循环结构是如何工作的。Velocity有哪些内置的函数和方法?能
    请描述一下Velocity模板中的循环结构是如何工作的。Velocity是一个基于Java的模板引擎,它允许开发人员使用简单的模板语言来引用由Java代码定义的对象,并在生成的文本中呈现这些对象。在Velocity模板中,循环结构用于遍历集合或数组,并对每个元素执行特定的操作。在Velocity模......
  • 代码模板
    代码模板基本代码模板#pragmaGCCoptimize(1)#pragmaGCCoptimize(2)#pragmaGCCoptimize(3,"Ofast","inline")#include<bits/stdc++.h>usingnamespacestd;usingi64=longlong;intmain(){ios::sync_with_stdio(false);cin.t......
  • nodejs守护进程 PM2
    nodejs守护进程PM2 概述PM2是用于Node.js应用程序的生产环境进程管理器,内置负载均衡器。它允许你将应用程序持续运行,无需停机重新加载,并简化常见的系统管理任务。官方网站 Github特性进程管理:PM2可以启动、停止和重启Node.js应用程序进程,确保应用程序一直处于运行......
  • 模板引擎 Handlebars.js
    模板引擎Handlebars.js 概述Handlebars.js是一个简单而强大的JavaScript模板引擎。它允许开发者通过定义模板和数据来生成动态的HTML页面。Handlebars.js基于Mustache模板语法,它提供了一些扩展和增强功能。并且开发者可以创建可重用的模板,并通过将数据传递给模板......
  • 使用NodeJS将数据保存成JSON文件
    使用NodeJS将数据保存成JSON文件 在平时我需要把后端一些object变量保存至本地,可以这样做:constexpress=require("express");constapp=express();constserver=require("http").createServer(app);constfs=require('fs');app.use(express.static("publ......
  • P3384 【模板】重链剖分/树链剖分
    原题链接题解dalao‘sblog我自己的认识请看代码区code#include<bits/stdc++.h>usingnamespacestd;intn,Q,root,mod;intbigson[100005];//和自己在同一条链上的儿子节点vector<int>G[100005];intsizes[100005];//主要是为了求子树大小,经过验证选择哪一个儿子节点......
  • nodejs在谷歌浏览器中调试
    一.浏览器开启实验室模式在谷歌浏览器中输入网址<chrome://flags/>,进入页面后打开该功能。二.配置js文件我用的是pycharm,首先对需要调试的js文件进行配置,然后填入--inspect-brk三.调试jsDebugger要调试的js文件,然后在谷歌浏览器中新打开一个标签页,打开开发者工具,等待nod......