首页前端开发JavaScriptNodejs中如何使用模板引擎?如何使用模板引擎渲染HTML?

Nodejs中如何使用模板引擎?如何使用模板引擎渲染HTML?

时间2024-01-30 04:08:02发布访客分类JavaScript浏览402
导读:收集整理的这篇文章主要介绍了Nodejs中如何使用模板引擎?如何使用模板引擎渲染HTML?,觉得挺不错的,现在分享给大家,也给大家做个参考。本篇文章给大家介绍一下浏览器中使用模板引擎的方法、Node中使用模板引擎的方法,以及通过案例聊聊使用...
收集整理的这篇文章主要介绍了Nodejs中如何使用模板引擎?如何使用模板引擎渲染HTML?,觉得挺不错的,现在分享给大家,也给大家做个参考。本篇文章给大家介绍一下浏览器中使用模板引擎的方法、Node中使用模板引擎的方法,以及通过案例聊聊使用模板引擎渲染HTML的方法。

【推荐学习:《nodejs 教程》】

使用readdir获取指定路径下的所有文件名

文件结构

实现代码

const fs = require('fs');
    fs.readdir('G:/pink_code/Node_Study/02',(err,list) =>
 {
    if (!err) {
            console.LOG(list);
    }
}
    )

代码输出

[ '01_http-helloWorld.js', '02_使用readdir获取指定路径下的所有文件名.js', 'www' ]

在浏览器中使用模板引擎

1. 安装art-template

npm install art-template

2. 通过script标签引入art-template

script src="./node_modules/art-template/lib/template-web.js">
    /script>
    

3. 使用模板引擎语法进行调用

script src="./node_modules/art-template/lib/template-web.js">
    /script>
    script tyPE='text/template' id = 'tpl'>
    这是{
{
name}
}
    /script>
    script>
    const test = template('tpl',{
        name: 'China'    }
    );
        console.log(test);
    /script>
    

在Node中使用模板引擎

1. 安装art-template

npm install art-template

2. 在需要使用模板引擎的模块中加载art-template

3. 查文档,使用模板引擎的API

在Node中使用模板引擎的一个小案例

const template = require('art-template');
const test = template.render('hello {
{
name}
}
',{
    name: 'NodeJs'}
    )console.log(test);
    

输出结果

hello NodeJs

一个使用模板引擎渲染HTML的小案例

HTML结构

html dir="ltr">
    head>
        meta charset="utf-8">
        meta name="GOOGLE" value="notranslate">
        style>
        h1 {
                border-bottom: 1px solid #c0c0c0;
                margin-bottom: 10px;
                padding-bottom: 10px;
                whITe-space: nowrap;
        }
        table {
                border-collapse: collapse;
        }
        th {
                cursor: pointer;
        }
        td.detailsColumn {
                -webkit-padding-start: 2em;
                text-align: end;
                white-space: nowrap;
        }
        a.icon {
                -webkit-padding-start: 1.5em;
                text-decoration: none;
                user-select: auto;
        }
        a.icon:hover {
                text-decoration: underline;
        }
        a.file {
                background: url("data:image/png;
    base64,ivbORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAABHUlEQVR42o2RMW7DIBiF3498ihrJD5JKHurL+CRVBp+i2T16tTynf2gO0KSb5ZrBBl4HHDBuK/WXACH4eO9/CAAAbdvijzLGNE1TVZXfZuHg6XCAQESAZXbOKaXO57eiKG6ft9PRKQIkCQQFoIiQFBGlFIB5nvm8t9aOX2Nd18oDzjnPgCDpn/BH4zh2XZdlWVmWiUK4IgCBoFMUz9eP6zRN75cLgEQhcmTQIbl72O0f9865qLAAsURAAgKBJKEtgLXWvyjLuFsThCSstb8rBCaAQhDYWgIZ7myM+TubjDHrHlZcbMyyk34cN0YSLcgS+wL0fe9TXDMbY33fR2AYBvyQ8L0Gk8MwREbrTfKe4TpTzwhArXWi8HI84h/1DFwI5mhxJamFAAAAAElFTkSuQmCC ") left top no-repeat;
        }
        a.dir {
                background: url("data:image/png;
    base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAd5JREFUeNqMU79rFUEQ/vbuodFEEkzAImBpkUabFP4ldpaJhZXYm/RiZWsv/hkWFglBUyTIgyAIIfgIRjHv3r39MePM7N3LcbxAFvZ2B2Bn22/mm3XMjF+HL3YW7q28YSIw8mBKoBihhhgCsoORot9d3/ywg3YowMXwNde/PzGnk2vn6PitrT+/PGeNaecg4+qNY3D43vy16A5wDDd4Aqg/ngmrjl/GoN0U5V1QquHQG3q+TPDVhVwyBffcmQGJmSVfyZk7R3SngI4JKfwDJ2+05zIg8gbiereTZRHhJ5KCMOwDFLjhoBTn2g0ghagfKeIYJDPFyibJVBtTREwq60SpYvh5++PpwatHsxSm9QRLSQpEVSd7/TYJUb49TX7gztpjjEffnoVw66+Ytovs14Yp7HaKmUXeX9rKUoMoLNW3srqI5fWn8JejrVkK0QcrkFLOgS39yoKUQe292WJ1guUHG8K2o8K00oO1BTvXoW4yasclUTgZYJY9aFNfAThX5CZRmczAV52oAPoupHhWRIUUAOoyUIlYVaAa/VbLbyiZUiyFbjqFNwiZQSGl4IDy9sO5Wrty0QLKhdZPxmgGcDo8ejn+c/6eiK9poz15Kw7Dr/vN/z6W7q++091/AQYA5mZ8GYJ9K0AAAAAASUVORK5CYII= ") left top no-repeat;
        }
        a.up {
                background: url("data:image/png;
    base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAmlJREFUeNpsU0toU0EUPfPysx/tTxuDH9SCWhUDooIbd7oRUUTMouqi2iIoCO6lceHWhegy4EJFinWjrlQUpvm0IIoFpVDEIthm0dpikpf3ZuZ6Z94nrXhhMjM3c8895977BBHB2PznK8WPtDgyWH5q77cPH8PpdXuhpQT4ifR9u5sfJb1bmw6VivahatDrxcRZ2njfoaMv+2j7mLDn93MPiNRMvGbL18L9IpF8h9/TN+EYkMffSiOXJ5+hkD+PdqcLpICWHOHc2CC+LEyA/K+cKQMnlQHJX8wqYG3MAJy88Wa4OLDvEqAEOpJd0LxHIMdHBziowSwVlF8D6QaicK01krw/JynwcKoEwZczewroTvZirlKJs5CqQ5CG8pb57FnJUA0LYCXMX5fibd+p8LWDDemcPZbzQyjvH+Ki1TlIciElA7ghwLKV4kRZstt2sANWRjYTAGzuP2hXZFpJ/GsxgGJ0ox1aoFWsDXyyxqCs26+ydmagFN/rRjymJ1898bzGzmQE0HCZpmk5A0RFIv8Pn0WYPsiu6t/Rsj6PauVTwffTSzGAGZhUG2F06hEc9ibS7OPMNp6ErYFlKavo7MkhmTqCxZ/jwzGA9Hx82H2BZSw1NTN9Gx8ycHkajU/7M+jInsDC7DiaEmo1bNl1AMr9ASFgqVu9MCTIzoGUimXVAnnaN0PdBBDCCYbEtMk6wkpQwIG0sn0PQIUF4GsTwLSIFKNqF6DVrQq+IWVrQDxAYQC/1SsYOI4pOxKZrfifiusbDUisif7XlpGIPufXd/uvdvZm760M0no1FZcnrzUdjw7au3vu/BVgAFLXeuTxhTXVAAAAAElFTkSuQmCC ") left top no-repeat;
        }
        html[dir=rtl] a {
                background-position-x: right;
        }
        #parentDirLinkBox {
                margin-bottom: 10px;
                padding-bottom: 10px;
        }
        #listingParsingErrorBox {
                border: 1px solid black;
                background: #fae691;
                padding: 10px;
                display: none;
        }
        /style>
        title id="title">
    C:\Users\HP\Desktop\共享文件\ 的索引/title>
    /head>
    body>
        div id="listingParsingErrorBox">
    糟糕!Google Chrome无法解读服务器所发送的数据。请a            href="http://code.google.COM/p/chromium/issues/entry">
    报告错误/a>
    ,并附上a href="LOCATION">
    原始列表/a>
    。/div>
        h1 id="header">
    C:\Users\HP\Desktop\共享文件\ 的索引/h1>
        div id="parentDirLinkBox" style="display: block;
    ">
            a id="parentDirLink" class="icon up" href="/C:/Users/HP/Desktop/%E5%85%B1%E4%BA%AB%E6%96%87%E4%BB%B6/..">
                span id="parentDirText">
    [上级目录]/span>
            /a>
        /div>
        table>
            thead>
                tr id="theader">
                    th id="nameColumnHeader" tabindex="0" role="button">
    名称/th>
                    th id="sizeColumnHeader" tabindex="0" role="button">
                        大小                /th>
                    th id="dateColumnHeader" tabindex="0" role="button">
                        修改日期                /th>
                /tr>
            /thead>
            tbody id="tbody">
            {
{
each files}
}
                 tr>
                td data-value="{
{
$value}
}
    ">
a class="icon file" @R_406_2514@gable="true" href="{
{
$value}
}
    ">
{
{
$value}
}
    /a>
                    /td>
                    td data-value="193955">
    189 kB/td>
                    td data-value="1627464963">
    2021/7/28 下午5:36:03/td>
                /tr>
            {
{
/each}
}
            /tbody>
        /table>
    /body>
    /html>
    

Node代码

const http = require('http');
    const template = require('art-template');
    const fs = require('fs');
    const server = http.createServer();
    server.on('request', (req, res) =>
 {
        const url = req.url;
        // 文件路径    const filePath = 'G:/pink_code/Node_Study/02';
        // 获取文件路径下所有的文件名    let listName;
        fs.readdir(filePath, (err, list) =>
 {
        if (!err) {
                listName = list;
        }
    }
    )    // 读取模板文件内容    fs.readFile('./www/template.html', (err, data) =>
 {
        if (!err) {
                data = data.toString();
            test = template.render(data,{
                files: listName            }
    )            res.end(test);
        }
 else {
                console.log('读取文件出错', err);
        }
    }
    );
}
    )// 监听3000端口server.listen(3000, (err) =>
 {
    if (!err) {
            console.log('服务器启动成功!');
    }
}
    )

实现效果

更多编程相关知识,请访问:编程入门!!

以上就是Nodejs中如何使用模板引擎?如何使用模板引擎渲染HTML?的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

Nodejs模板引擎

若转载请注明出处: Nodejs中如何使用模板引擎?如何使用模板引擎渲染HTML?
本文地址: https://pptw.com/jishu/592020.html
js数组之间如何进行连接 聊聊vscode中debugger的使用技巧

游客 回复需填写必要信息