Node中require第三方模块(art-template)的规则

42 篇文章 1 订阅

Node.js中使用CommonJs模块化机制,通过npm下载的第三方包,我们在项目中引入第三方包都是:let xx = require('第三方包名'),究竟require方法加载第三方包的原理机制是什么,今天我们来探讨下。

1、安装art-template

        通过npm安装模板引擎(npm: 包管理工具 , 能帮你下载你所需要的包)

        npm install art-template 通过npm安装模板引擎包

        该命令在哪执行就会把包下载到哪里默认下载到node_ modules中,不能更改的

打开终端,在终端中输入

npm install art-template

2.然后在项目模板导入那些核心模块

var template = require('art-template');

3.再写入案例:

var template = require('art-template');

var text = template.render(`我的名字是{{name}},今年{{age}}岁`, {
    name: 'Node',
    age: 18,

})

console.log(text)

4.在终端输出 

 5.实战案例:

//获取模板引擎实例
var template = require('art-template');
 
//获取文件操作对象实例
var fs = require('fs');
 
//获取服务器实例
var http = require('http');
 
//创建服务器,并绑定3000端口
var server = http.createServer().listen(5000, function () {
    console.log('Server star ....');
})
 
//服务器监听方法
server.on('request', function (req, res) {
 
    //获取请求地址
    var url = req.url;
 
    if (url === '/') {
 
        //读取当前目录下的'tpl.html'文件
        fs.readFile('./index.html', function (err, data) {
            if (err) {
                //读取失败
                return console.log('读取文件失败了')
            }
            //读取成功后,使用模板引擎替换字段
            /**
             * 替换规则
             * 替换标记:{{}}
             * 例如:{{ name }}  替换为下面的  Node
             */
            var ret = template.render(data.toString(), {
 
                //对应{{ name }}
                name: 'Node',
 
                //对应{{ age }}
                age: 18,
 
                //对应{{ province }}
                province: '武汉市',
 
                //对应{{each hobbies}} {{ $value }} {{/each}}
                //此为数组 each开始循环  /each结束循环
                hobbies: [
                    '写代码',
                    '打游戏',
                    '听音乐'
                ],
 
                //对应{{ title }}
                title: '个人信息'
            })
            res.end(ret);
        })
    } else {
 
        //其他请求地址
        res.end('404');
    }
})

index.html中为

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>{{ title }}</title>
</head>
<body>
  <p>大家好,我叫:{{ name }}</p>
  <p>我今年 {{ age }} 岁了</p>
  <h1>我来自 {{ province }}</h1>
  <p>
    我喜欢:{{each hobbies}} 
                {{ $value }} 
            {{/each}}
  </p>
  <script>
    var foo = '{{ title }}'
  </script>
</body>
</html>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值