随着Web开发技术的不断发展,前端工程化已经成为了一个不可忽视的趋势。在这其中,Node.js作为一门轻量级的JavaScript运行时环境,已经成为了前端工程师必备的技能之一。而npm(Node Package Manager)作为Node.js的包管理器,也成为了我们日常开发中的得力助手。本文将介绍npm包管理器的使用和原理,帮助大家更好地掌握这一强大的工具。
npm是Node.js官方提供的包管理工具,它可以帮助我们轻松地安装、共享和管理JavaScript代码。通过npm,我们可以快速地找到所需的库和模块,从而提高开发效率。同时,npm还提供了一个庞大的开发者社区,让我们可以轻松地分享自己的代码和学习他人的优秀作品。
在开始使用npm之前,我们需要先安装Node.js。访问Node.js官网(https://nodejs.org/)下载并安装适合自己操作系统的版本。安装完成后,npm会自动安装到系统中。
要使用npm管理项目,首先需要创建一个文件夹并在其中初始化一个新的npm项目。打开命令行工具,进入文件夹,然后输入以下命令:
npm init
按照提示填写项目的相关信息,如项目名称、版本号等。完成初始化后,会在项目目录下生成一个package.json
文件,用于存储项目的元数据和依赖关系。
在项目中使用第三方库或模块时,可以使用npm进行安装。例如,要安装一个名为express
的Web框架,可以在命令行中输入以下命令:
npm install express --save
这里的--save
参数表示将该依赖添加到package.json
文件的dependencies
列表中,以便在下次构建项目时自动安装。如果不加这个参数,依赖会被安装在当前项目中,但不会添加到package.json
文件中。
如果不再需要某个依赖项,可以使用以下命令将其卸载:
npm uninstall express --save
当依赖项有新版本发布时,可以使用以下命令进行更新:
npm update express --save
有时,我们可能需要在同一个项目中使用不同版本的依赖项。这时,可以在package.json
文件中指定每个依赖项的版本范围。例如,要同时支持express
的3个主要版本,可以将依赖项的版本声明为^3.0.0
:
{
"dependencies": {
"express": "^3.0.0"
}
}
这里的^
符号表示允许安装该范围下的最新版本。如果需要固定某个版本,可以使用~
符号。例如,要固定使用express
的3.0.0版本,可以这样声明:
{
"dependencies": {
"express": "3.0.0"
}
}
可以使用以下命令:
npm list --depth=0
在package.json
文件中,我们可以定义一些自定义的脚本命令。这些命令可以在命令行中直接运行,以执行特定的任务。例如,我们可以添加一个名为start
的脚本来启动项目:
{
"scripts": {
"start": "node app.js"
}
}
然后,在命令行中输入以下命令来运行该脚本:
npm start
“软件开发视频大讲堂”丛书是清华社计算机专业基础类零售图书畅销品牌之一。
(1)2008—2023年,丛书累计修订7次,销售400万册,深受广大程序员喜爱。
(2)4本荣获“全行业优畅销书”奖,1本荣获清华社“专业畅销书”一等奖,多数品种在全国计算机零售图书排行榜排行中名列前茅。
(3)实用、易懂、资源丰富,被数百所高校选为专业课教材。
《Node.js从入门到精通》,Node.js入门实战经典,本书有以下特点。
学通Node.js只需要4步:基础知识→核心技术→高级应用→项目实战,符合认知规律。
53集同步教学微课+强化实战训练+在线答疑,夯实基础,精准,有效,速练,适合自学。
63个应用实例+1个项目案例,学习1小时,训练10小时,从入门到项目上线,真正成为Node.js高手。
根据图书首页说明,扫描书中二维码,打开明日科技账号注册页面,填写注册信息后将自动获取Web前端开发资源库一年(自注册之日起)的VIP使用权限。
(1)技术资源库:439个技术要点,系统、全面,随时随地学习。
(2)实例资源库:393个应用实例,含大量热点实例和关键实例,巩固编程技能。
(3)项目资源库:13个实战项目,快速积累项目经验,总有一个你找工作会用到。
(4)源码资源库:406项源代码详细分析,多读源码,快速成长。
(5)视频资源库:677集学习视频,边看视频边学习,提升更快。
(6)面试资源库:Web前端企业面试真题,合理职业规划,快速就业。
学会、用好Web前端开发资源库,可在短时间内从小白晋升为一名软件工程师。
(1)关注清大文森学堂公众号,可获取本书的源代码、PPT课件、视频等资源。
(2)关注清大文森学堂公众号,可加入本书的学习交流群,参加图书直播答疑。
《Node.js从入门到精通》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Node.js进行Web应用开发需要掌握的各方面技术。全书分为4篇,共18章,包括Node.js环境搭建、第一个Node.js服务器程序、npm包管理器的使用、Node.js基础、事件的监听与触发、util工具模块、fs文件系统模块、os操作系统模块、异步编程与回调、I/O流操作、Web应用构建基础、WebSocket网络编程、Web模板引擎、Express框架、数据存储之MySQL数据库、数据存储之MongoDB数据库、程序调试与异常处理、在线五子棋游戏等内容。本书知识点结合具体实例进行介绍,涉及的程序代码给出了详细的注释,可以使读者轻松领会使用Node.js进行Web应用开发的精髓,快速提高开发技能。
明日科技,全称是吉林省明日科技有限公司,是一家专业从事软件开发、教育培训以及软件开发教育资源整合的高科技公司,其编写的教材非常注重选取软件开发中的必需、常用内容,同时也很注重内容的易学、方便性以及相关知识的拓展性,深受读者喜爱。其教材多次荣获“全行业优秀畅销品种”“全国高校出版社优秀畅销书”等奖项,多个品种长期位居同类图书销售排行榜的前列。
第1篇 基础知识
第1章 Node.js环境搭建 2
视频讲解:35分钟
1.1 认识Node.js 2
1.1.1 什么是Node.js 2
1.1.2 Node.js的工作原理 4
1.1.3 Node.js的优缺点 5
1.1.4 Node.js能做什么 5
1.1.5 谁在使用Node.js 6
1.2 Node.js的下载与安装 6
1.2.1 下载并安装Node.js 6
1.2.2 测试Node.js是否安装成功 9
1.3 熟悉WebStorm开发工具 10
1.3.1 WebStorm的下载 10
1.3.2 WebStorm的安装 11
1.3.3 WebStorm首次加载配置 12
1.3.4 WebStorm功能区预览 16
1.3.5 WebStorm中英文对照菜单 16
1.3.6 工具栏 18
1.3.7 常用快捷键 18
1.4 要点回顾 19
第2章 第一个Node.js服务器程序 20
视频讲解:6分钟
2.1 使用WebStorm创建第一个Node.js程序 20
2.2 在WebStorm中运行Node.js程序 23
2.3 使用cmd命令运行Node.js程序 25
2.4 解决Node.js程序输出中文时出现乱码的问题 26
2.5 要点回顾 27
第3章 npm包管理器的使用 28
视频讲解:8分钟
3.1 npm包管理器基础 28
3.1.1 npm概述 28
3.1.2 查看npm的版本 29
3.1.3 常用npm软件包 30
3.2 package.json基础 32
3.2.1 认识package.json 32
3.2.2 npm中的package-lock.json文件 34
3.3 使用npm包管理器安装包 36
3.3.1 安装单个软件包 36
3.3.2 安装软件包的指定版本 38
3.3.3 安装所有软件包 39
3.3.4 更新软件包 41
3.3.5 指定npm软件包的安装位置 41
3.3.6 卸载npm软件包 42
3.4 要点回顾 43
第4章 Node.js基础 44
视频讲解:34分钟
4.1 Node.js全局对象 44
4.1.1 全局变量 44
4.1.2 全局对象 45
4.1.3 全局函数 49
4.2 模块化编程 51
4.2.1 exports对象 51
4.2.2 module对象 52
4.3 要点回顾 53
第5章 事件的监听与触发 54
视频讲解:21分钟
5.1 EventEmitter对象 54
5.2 添加和触发监听事件 57
5.2.1 添加监听事件 57
5.2.2 添加单次监听事件 59
5.2.3 触发监听事件 60
5.3 删除监听事件 61
5.4 要点回顾 63
第2篇 核心技术
第6章 util工具模块 66
视频讲解:3分钟
6.1 util模块概述 66
6.2 util模块的使用 67
6.2.1 格式化输出字符串 67
6.2.2 将对象转换为字符串 68
6.2.3 实现对象间的原型继承 69
6.2.4 转换异步函数的风格 70
6.2.5 判断是否为指定类型的内置对象 70
6.3 要点回顾 73
第7章 fs文件系统模块 74
视频讲解:47分钟
7.1 文件的读取与写入 74
7.1.1 检查文件是否存在 74
7.1.2 文件读取 77
7.1.3 文件写入 79
7.1.4 文件操作时的异常处理 82
7.2 文件操作 83
7.2.1 截断文件 83
7.2.2 删除文件 84
7.2.3 复制文件 85
7.2.4 重命名文件 87
7.3 目录操作 88
7.3.1 创建目录 88
7.3.2 读取目录 91
7.3.3 删除空目录 91
7.3.4 查看目录信息 92
7.3.5 获取目录的绝对路径 94
7.4 要点回顾 95
第8章 os操作系统模块 96
视频讲解:2分钟
8.1 获取内存相关信息 96
8.1.1 获取系统剩余内存 96
8.1.2 获取系统总内存 97
8.2 获取网络相关信息 98
8.3 获取系统相关目录 99
8.3.1 获取用户主目录 99
8.3.2 获取临时文件目录 99
8.4 获取系统相关信息 100
8.5 os模块常用属性 106
8.6 要点回顾 107
第9章 异步编程与回调 108
视频讲解:31分钟
9.1 同步和异步 108
9.2 回调函数 110
9.3 使用async/await的异步编程 112
9.3.1 Promise基础 112
9.3.2 为什么使用async/await 115
9.3.3 async/await的使用 116
9.3.4 使用async/await异步编程的优点 118
9.4 要点回顾 118
第10章 I/O流操作 119
视频讲解:71分钟
10.1 流简介 119
10.1.1 流的基本概念 119
10.1.2 了解Buffer 120
10.2 可读流的使用 120
10.2.1 流的读取模式与状态 120
10.2.2 可读流的创建 121
10.2.3 可读流的属性、方法及事件 121
10.2.4 可读流的常见操作 123
10.3 可写流的使用 127
10.3.1 可写流的创建 127
10.3.2 可写流的属性、方法及事件 128
10.3.3 可写流的常见操作 129
10.4 双工流与转换流介绍 132
10.4.1 双工流 132
10.4.2 转换流 133
10.5 要点回顾 135
第3篇 高级应用
第11章 Web应用构建基础 138
视频讲解:97分钟
11.1 Web应用开发基础 138
11.1.1 请求与响应 138
11.1.2 客户端与服务器端 139
11.2 url和querystring模块 141
11.2.1 url模块 141
11.2.2 querystring模块 142
11.3 http模块 143
11.3.1 server对象 143
11.3.2 response对象 144
11.3.3 request对象 149
11.4 path模块 152
11.4.1 绝对路径和相对路径 152
11.4.2 path模块的常见操作 153
11.4.3 path模块的属性 161
11.5 要点回顾 161
第12章 WebSocket网络编程 162
视频讲解:41分钟
12.1 WebSocket网络编程的基本实现 162
12.1.1 WebSocket服务器端实现 163
12.1.2 WebSocket客户端实现 164
12.1.3 服务器端和客户端的通信 166
12.2 socket数据通信类型 169
12.2.1 public通信类型 169
12.2.2 broadcast通信类型 172
12.2.3 private通信类型 174
12.3 客户端分组的实现 177
12.4 项目实战—聊天室 182
12.4.1 服务器端实现 182
12.4.2 客户端实现 183
12.4.3 运行项目 185
12.5 要点回顾 185
第13章 Web模板引擎 186
视频讲解:33分钟
13.1 ejs模块 186
13.1.1 ejs模块的渲染方法 186
13.1.2 ejs模块的数据传递 191
13.2 pug模块 194
13.2.1 pug文件基本语法 194
13.2.2 pug模块的渲染方法 199
13.2.3 pug模块的数据传递 201
13.3 要点回顾 203
第14章 Express框架 204
视频讲解:102分钟
14.1 认识express模块 205
14.1.1 express模块的基本使用步骤 205
14.1.2 express模块中的响应对象 205
14.1.3 express模块中的请求对象 207
14.2 express模块中间件 208
14.2.1 认识中间件 208
14.2.2 router中间件 209
14.2.3 static中间件 210
14.2.4 cookie parser中间件 211
14.2.5 body parser中间件 213
14.3 实现RESTful Web服务 216
14.4 express-generator模块 219
14.4.1 创建项目 219
14.4.2 设置项目参数 221
14.4.3 express-generator模块应用 222
14.5 Koa框架基础 228
14.5.1 认识Koa框架 228
14.5.2 Koa框架的基本使用 228
14.6 项目实战—选座购票 230
14.7 要点回顾 235
第15章 数据存储之MySQL数据库 236
视频讲解:39分钟
15.1 MySQL数据库的下载和安装 236
15.1.1 数据库简介 236
15.1.2 下载MySQL 237
15.1.3 安装MySQL 238
15.1.4 配置MySQL环境变量 245
15.1.5 启动MySQL 247
15.1.6 使用Navicat for MySQL管理软件 248
15.2 MySQL数据库操作基础 250
15.2.1 认识SQL语言 250
15.2.2 数据库操作 250
15.2.3 数据表操作 252
15.2.4 数据的增删改查 257
15.3 在Node.js中操作MySQL数据库 262
15.3.1 Node.js中的mysql模块 262
15.3.2 Node.js中对MySQL实现增删改查操作 267
15.4 要点回顾 274
第16章 数据存储之MongoDB数据库 275
视频讲解:47分钟
16.1 MongoDB数据库的下载、安装与配置 275
16.1.1 关系型数据库与非关系型数据库 276
16.1.2 下载MongoDB数据库 276
16.1.3 安装MongoDB数据库 277
16.1.4 配置并测试MongoDB数据库 279
16.2 MongoDB数据库基本操作 282
16.2.1 使用JavaScript语言 282
16.2.2 数据库、集合与文档 283
16.2.3 添加数据 284
12.2.4 查询数据 285
16.2.5 修改数据 286
16.2.6 删除数据 287
16.3 项目实战—心情日记 287
16.3.1 Node.js中的mongojs模块 288
16.3.2 初始化数据 289
16.3.3 主页的实现 290
16.3.4 添加日记 291
16.3.5 修改日记 293
16.3.6 删除日记 294
16.3.7 用户登录与退出 295
16.4 要点回顾 297
第17章 程序调试与异常处理 298
视频讲解:20分钟
17.1 使用console.log()方法调试程序 298
17.2 使用WebStorm调试程序 299
17.2.1 插入断点 299
17.2.2 删除断点 300
17.2.3 禁用断点 301
17.2.4 断点调试 302
17.3 Node.js程序异常处理 303
17.3.1 使用throw关键字抛出异常 303
17.3.2 Error错误对象 304
17.3.3 使用try…catch语句捕获异常 305
17.3.4 异步程序中的异常处理 306
17.4 要点回顾 307
第4篇 项目实战
第18章 在线五子棋游戏 310
视频讲解:33分钟
18.1 需求分析 310
18.2 游戏设计 311
18.2.1 游戏功能结构 311
18.2.2 游戏业务流程 311
18.2.3 游戏预览 312
18.3 游戏开发准备 313
18.3.1 游戏开发环境 313
18.3.2 游戏项目构成 314
18.4 登录游戏房间设计 314
18.4.1 登录游戏房间概述 314
18.4.2 登录游戏房间的实现 315
18.5 游戏玩家列表设计 317
18.5.1 游戏玩家列表概述 317
18.5.2 游戏玩家列表的实现 317
18.6 游戏对战设计 318
18.6.1 游戏对战概述 318
18.6.2 游戏对战页面初始化 319
18.6.3 绘制棋盘 322
18.6.4 游戏算法及胜负判定 324
18.6.5 重新开始游戏 325
18.6.6 更改棋盘颜色 326
18.7 要点回顾 327
附录A JavaScript基础 328
A.1 Node.js与JavaScript 328
A.2 JavaScript在HTML中的使用 328
A.2.1 在页面中直接嵌入JavaScript代码 328
A.2.2 链接外部JavaScript文件 330
A.2.3 作为标签的属性值使用 331
A.3 JavaScript基本语法规则 331
A.4 JavaScript数据类型 333
A.4.1 数值型 333
A.4.2 字符串型 336
A.4.3 布尔值和特殊数据类型 338
A.5 JavaScript流程控制 339
A.5.1 条件判断语句 339
A.5.2 循环控制语句 342
A.6 JavaScript函数 345
A.6.1 函数的定义 345
A.6.2 函数的调用 346
A.7 DOM 348
A.7.1 DOM概述 348
A.7.2 DOM对象节点属性 349
A.7.3 DOM对象的应用 349
A.8 Document对象 350
A.8.1 Document对象介绍 350
A.8.2 Document对象的常用属性 350
A.8.3 Document对象的常用方法 351
A.8.4 设置文档背景色和前景色 351
A.8.5 设置动态标题栏 352
A.8.6 在文档中输出数据 352
A.8.7 获取文本框并修改其内容 353
A.9 Window对象 354
A.9.1 Window对象的属性 354
A.9.2 Window对象的方法 355
A.9.3 Window对象的使用 355