nodejs之常用第三方模块


1.nodemon自动重启服务(热部署)

1.1.简介

发现:每次修改代码都得重新启动服务,增加工作量
解决:通过nodemon检测文件修改自动重启

1.2.使用

  • 步骤1:初始化项目(ps. 自动创建package.json文件,作用:描述项目依赖)

img

  • 步骤1:安装(npm install nodemon –save-dev -g)

img

  • 步骤2:通过nodemon启动服务 -> 测试

img

2.moment日期处理模块

1、简介

发现:通过昨天项目发现,发现日期代码太长,切不便记忆
解决:自己封装模块或使用第三方模块(http://momentjs.cn/)

2、使用

  • 步骤1:初始化项目(ps. 自动创建package.json文件,作用:描述项目依赖)

img

  • 步骤2:安装(npm install moment)

img

  • 步骤3:测试

img

3.Jade/ejs/art模板引擎 (第三方模块)

1、简介

  • 模板引擎:名词
  1. 在 PHP中,就是一个类,将视图标签替换成对应数据,生成新的HTML页面

  2. 在NodeJS中,就是一个模块,将视图标签替换成对应数据,生成新的HTML页面

  • 模板引擎测速

img

2、特点

img

3、ejs

img

  • 步骤2:创建ejs.js和ejs.html测试

img

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
//1.引入第三方模块EJS

var ejs = require('ejs');



//2.调用render方法,将字符串替换成HTML

// var html = '<h1><%= username %></h1>';

// var result = ejs.render(html, {username: '张三'});

// console.log(result);



//2.调用renderFile方法,将字符串替换成HTML

ejs.renderFile('./ejs.html', {

​ username: '传智播客',

​ age: 5,

​ orders: [

​ {id:1, title: '标题1', price: 30},

​ {id:2, title: '标题2', price: 33},

​ {id:3, title: '标题3', price: 12},

​ ],

​ },

​ function(err, str) {



​ if (err) {

​ console.log(err)

​ return

​ }

​ console.log(str);

});



<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

​ <title>视图</title>

</head>

<body>

 <div><%= username %></h1></div>

 <div><%= age %></div>

 <div>

​ <% if (age>18) { %>

​ 妹妹哥哥来了

​ <% } else { %>

​ 你走吧

​ <% } %>

​ </div>

 <div>

​ <% orders.forEach(function(order,index) { %>

​ <%= index %> <%= order.title %>

​ <% }) %>

​ </div>

</body>

</html>

4、Jade

img

  • 步骤2:创建jade.js和jade.html测试

img

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121

//1.引入第三方模块JADE

var jade = require('jade');



//2.调用render方法,将字符串替换成HTML

// var html = '<h1>#{uname} </h1>';

// var result = jade.render(html, {uname: '张三'});

// console.log(result);





//2.调用renderFile方法,将字符串替换成HTML

var html = jade.renderFile('jade.html', {

​ username: '传智播客',

​ age: 5,

​ orders: [

​ {id:1, title: '标题1', price: 30},

​ {id:2, title: '标题2', price: 33},

​ {id:3, title: '标题3', price: 12},

​ ],

​ pretty: true

})

console.log(html);



doctype html

html

​ head

​ meta(charset='utf-8')

​ body

​ // 注释会显示

​ //- 注释不显示

​ HTML标签语法: <标签名 属性n=属性值n>内容</标签名>

​ jade模板规则:

​ 标签名直接写

​ 括号里面是属性

​ class用数组写法

​ -标识js代码

​ #{变量名} 输出数据

​ 等

​ div(id='div1',style='width:300px;height:30px;background:red;') hello div1

​ div(class='div2') hello div2

​ div(class=['div3','div']) hello div3



​ p

​ - var a= 1

​ - var b= 1

​ p 计算结果是:#{a+b}



​ p 用户名:#{username},年龄:#{age}



​ - if (age > 18)

​ p 111

​ - else

​ p 222





​ - for (index in orders)

​ p #{index} __ #{orders[index].title}



​ ul

​ - each order, index in orders

​ li #{index} __ + #{order.title}

5、art(推荐)

img

  • 步骤2:创建art.js和art.html测试

img

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
//1.引入第三方模块ART

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



//2.调用render方法,将字符串替换成HTML

// var html = '<h1>{{username}}</h1>';

// var result = art.render(html, {username: '张三'});

// console.log(result);





//2.调用art(同renderFile),将字符串替换成HTML

var html = art(__dirname + '/art.html', {

​ username: '传智播客',

​ age: 5,

​ orders: [

​ {id:1, title: '标题1', price: 30},

​ {id:2, title: '标题2', price: 33},

​ {id:3, title: '标题3', price: 12},

​ ],

});

console.log(html);



<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

​ <title>Document</title>

</head>

<body>

 <div>{{username}}</div>

 <div>{{age}}</div>

 <div>

​ {{if age > 18}}

​ 妹妹哥哥来了

​ {{else}}

​ 你走吧

​ {{/if}}

​ </div>

 <div>

​ {{each orders as order index}}

​ {{index}} {{order.title}}

​ {{/each}}

​ </div>

</body>

</html>

文章作者: 哈雅布撒
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 哈雅布撒 !
  目录