文章目录
- 一、npm简介
- 二、npm的基本操作
- 1. 安装Node.js和npm
- 2. 创建和管理项目
- 3. 安装依赖
- 4. 卸载依赖
- 5. 更新依赖
- 三、npm的高级特性
- 1. 使用不同版本的依赖项
- 2. 查看已安装的依赖项和它们的版本信息
- 3. 运行脚本命令
- 《Node.js从入门到精通(软件开发视频大讲堂)》
- 编辑推荐
- 内容简介
- 作者简介
- 目录
随着Web开发技术的不断发展,前端工程化已经成为了一个不可忽视的趋势。在这其中,Node.js作为一门轻量级的JavaScript运行时环境,已经成为了前端工程师必备的技能之一。而npm(Node Package Manager)作为Node.js的包管理器,也成为了我们日常开发中的得力助手。本文将介绍npm包管理器的使用和原理,帮助大家更好地掌握这一强大的工具。
一、npm简介
npm是Node.js官方提供的包管理工具,它可以帮助我们轻松地安装、共享和管理JavaScript代码。通过npm,我们可以快速地找到所需的库和模块,从而提高开发效率。同时,npm还提供了一个庞大的开发者社区,让我们可以轻松地分享自己的代码和学习他人的优秀作品。
二、npm的基本操作
1. 安装Node.js和npm
在开始使用npm之前,我们需要先安装Node.js。访问Node.js官网(https://nodejs.org/)下载并安装适合自己操作系统的版本。安装完成后,npm会自动安装到系统中。
2. 创建和管理项目
要使用npm管理项目,首先需要创建一个文件夹并在其中初始化一个新的npm项目。打开命令行工具,进入文件夹,然后输入以下命令:
npm init
按照提示填写项目的相关信息,如项目名称、版本号等。完成初始化后,会在项目目录下生成一个package.json
文件,用于存储项目的元数据和依赖关系。
3. 安装依赖
在项目中使用第三方库或模块时,可以使用npm进行安装。例如,要安装一个名为express
的Web框架,可以在命令行中输入以下命令:
npm install express --save
这里的--save
参数表示将该依赖添加到package.json
文件的dependencies
列表中,以便在下次构建项目时自动安装。如果不加这个参数,依赖会被安装在当前项目中,但不会添加到package.json
文件中。
4. 卸载依赖
如果不再需要某个依赖项,可以使用以下命令将其卸载:
npm uninstall express --save
5. 更新依赖
当依赖项有新版本发布时,可以使用以下命令进行更新:
npm update express --save
三、npm的高级特性
1. 使用不同版本的依赖项
有时,我们可能需要在同一个项目中使用不同版本的依赖项。这时,可以在package.json
文件中指定每个依赖项的版本范围。例如,要同时支持express
的3个主要版本,可以将依赖项的版本声明为^3.0.0
:
{"dependencies": {"express": "^3.0.0"}
}
这里的^
符号表示允许安装该范围下的最新版本。如果需要固定某个版本,可以使用~
符号。例如,要固定使用express
的3.0.0版本,可以这样声明:
{"dependencies": {"express": "3.0.0"}
}
2. 查看已安装的依赖项和它们的版本信息
可以使用以下命令:
npm list --depth=0
3. 运行脚本命令
在package.json
文件中,我们可以定义一些自定义的脚本命令。这些命令可以在命令行中直接运行,以执行特定的任务。例如,我们可以添加一个名为start
的脚本来启动项目:
{"scripts": {"start": "node app.js"}
}
然后,在命令行中输入以下命令来运行该脚本:
npm start
《Node.js从入门到精通(软件开发视频大讲堂)》
编辑推荐
“软件开发视频大讲堂”丛书是清华社计算机专业基础类零售图书畅销品牌之一。
(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 21.1.1 什么是Node.js 21.1.2 Node.js的工作原理 41.1.3 Node.js的优缺点 51.1.4 Node.js能做什么 51.1.5 谁在使用Node.js 61.2 Node.js的下载与安装 61.2.1 下载并安装Node.js 61.2.2 测试Node.js是否安装成功 91.3 熟悉WebStorm开发工具 101.3.1 WebStorm的下载 101.3.2 WebStorm的安装 111.3.3 WebStorm首次加载配置 121.3.4 WebStorm功能区预览 161.3.5 WebStorm中英文对照菜单 161.3.6 工具栏 181.3.7 常用快捷键 181.4 要点回顾 19第2章 第一个Node.js服务器程序 20视频讲解:6分钟2.1 使用WebStorm创建第一个Node.js程序 202.2 在WebStorm中运行Node.js程序 232.3 使用cmd命令运行Node.js程序 252.4 解决Node.js程序输出中文时出现乱码的问题 262.5 要点回顾 27第3章 npm包管理器的使用 28视频讲解:8分钟3.1 npm包管理器基础 283.1.1 npm概述 283.1.2 查看npm的版本 293.1.3 常用npm软件包 303.2 package.json基础 323.2.1 认识package.json 323.2.2 npm中的package-lock.json文件 343.3 使用npm包管理器安装包 363.3.1 安装单个软件包 363.3.2 安装软件包的指定版本 383.3.3 安装所有软件包 393.3.4 更新软件包 413.3.5 指定npm软件包的安装位置 413.3.6 卸载npm软件包 423.4 要点回顾 43第4章 Node.js基础 44视频讲解:34分钟4.1 Node.js全局对象 444.1.1 全局变量 444.1.2 全局对象 454.1.3 全局函数 494.2 模块化编程 514.2.1 exports对象 514.2.2 module对象 524.3 要点回顾 53第5章 事件的监听与触发 54视频讲解:21分钟5.1 EventEmitter对象 545.2 添加和触发监听事件 575.2.1 添加监听事件 575.2.2 添加单次监听事件 595.2.3 触发监听事件 605.3 删除监听事件 615.4 要点回顾 63第2篇 核心技术第6章 util工具模块 66视频讲解:3分钟6.1 util模块概述 666.2 util模块的使用 676.2.1 格式化输出字符串 676.2.2 将对象转换为字符串 686.2.3 实现对象间的原型继承 696.2.4 转换异步函数的风格 706.2.5 判断是否为指定类型的内置对象 706.3 要点回顾 73第7章 fs文件系统模块 74视频讲解:47分钟7.1 文件的读取与写入 747.1.1 检查文件是否存在 747.1.2 文件读取 777.1.3 文件写入 797.1.4 文件操作时的异常处理 827.2 文件操作 837.2.1 截断文件 837.2.2 删除文件 847.2.3 复制文件 857.2.4 重命名文件 877.3 目录操作 887.3.1 创建目录 887.3.2 读取目录 917.3.3 删除空目录 917.3.4 查看目录信息 927.3.5 获取目录的绝对路径 947.4 要点回顾 95第8章 os操作系统模块 96视频讲解:2分钟8.1 获取内存相关信息 968.1.1 获取系统剩余内存 968.1.2 获取系统总内存 978.2 获取网络相关信息 988.3 获取系统相关目录 998.3.1 获取用户主目录 998.3.2 获取临时文件目录 998.4 获取系统相关信息 1008.5 os模块常用属性 1068.6 要点回顾 107第9章 异步编程与回调 108视频讲解:31分钟9.1 同步和异步 1089.2 回调函数 1109.3 使用async/await的异步编程 1129.3.1 Promise基础 1129.3.2 为什么使用async/await 1159.3.3 async/await的使用 1169.3.4 使用async/await异步编程的优点 1189.4 要点回顾 118第10章 I/O流操作 119视频讲解:71分钟10.1 流简介 11910.1.1 流的基本概念 11910.1.2 了解Buffer 12010.2 可读流的使用 12010.2.1 流的读取模式与状态 12010.2.2 可读流的创建 12110.2.3 可读流的属性、方法及事件 12110.2.4 可读流的常见操作 12310.3 可写流的使用 12710.3.1 可写流的创建 12710.3.2 可写流的属性、方法及事件 12810.3.3 可写流的常见操作 12910.4 双工流与转换流介绍 13210.4.1 双工流 13210.4.2 转换流 13310.5 要点回顾 135第3篇 高级应用第11章 Web应用构建基础 138视频讲解:97分钟11.1 Web应用开发基础 13811.1.1 请求与响应 13811.1.2 客户端与服务器端 13911.2 url和querystring模块 14111.2.1 url模块 14111.2.2 querystring模块 14211.3 http模块 14311.3.1 server对象 14311.3.2 response对象 14411.3.3 request对象 14911.4 path模块 15211.4.1 绝对路径和相对路径 15211.4.2 path模块的常见操作 15311.4.3 path模块的属性 16111.5 要点回顾 161第12章 WebSocket网络编程 162视频讲解:41分钟12.1 WebSocket网络编程的基本实现 16212.1.1 WebSocket服务器端实现 16312.1.2 WebSocket客户端实现 16412.1.3 服务器端和客户端的通信 16612.2 socket数据通信类型 16912.2.1 public通信类型 16912.2.2 broadcast通信类型 17212.2.3 private通信类型 17412.3 客户端分组的实现 17712.4 项目实战—聊天室 18212.4.1 服务器端实现 18212.4.2 客户端实现 18312.4.3 运行项目 18512.5 要点回顾 185第13章 Web模板引擎 186视频讲解:33分钟13.1 ejs模块 18613.1.1 ejs模块的渲染方法 18613.1.2 ejs模块的数据传递 19113.2 pug模块 19413.2.1 pug文件基本语法 19413.2.2 pug模块的渲染方法 19913.2.3 pug模块的数据传递 20113.3 要点回顾 203第14章 Express框架 204视频讲解:102分钟14.1 认识express模块 20514.1.1 express模块的基本使用步骤 20514.1.2 express模块中的响应对象 20514.1.3 express模块中的请求对象 20714.2 express模块中间件 20814.2.1 认识中间件 20814.2.2 router中间件 20914.2.3 static中间件 21014.2.4 cookie parser中间件 21114.2.5 body parser中间件 21314.3 实现RESTful Web服务 21614.4 express-generator模块 21914.4.1 创建项目 21914.4.2 设置项目参数 22114.4.3 express-generator模块应用 22214.5 Koa框架基础 22814.5.1 认识Koa框架 22814.5.2 Koa框架的基本使用 22814.6 项目实战—选座购票 23014.7 要点回顾 235第15章 数据存储之MySQL数据库 236视频讲解:39分钟15.1 MySQL数据库的下载和安装 23615.1.1 数据库简介 23615.1.2 下载MySQL 23715.1.3 安装MySQL 23815.1.4 配置MySQL环境变量 24515.1.5 启动MySQL 24715.1.6 使用Navicat for MySQL管理软件 24815.2 MySQL数据库操作基础 25015.2.1 认识SQL语言 25015.2.2 数据库操作 25015.2.3 数据表操作 25215.2.4 数据的增删改查 25715.3 在Node.js中操作MySQL数据库 26215.3.1 Node.js中的mysql模块 26215.3.2 Node.js中对MySQL实现增删改查操作 26715.4 要点回顾 274第16章 数据存储之MongoDB数据库 275视频讲解:47分钟16.1 MongoDB数据库的下载、安装与配置 27516.1.1 关系型数据库与非关系型数据库 27616.1.2 下载MongoDB数据库 27616.1.3 安装MongoDB数据库 27716.1.4 配置并测试MongoDB数据库 27916.2 MongoDB数据库基本操作 28216.2.1 使用JavaScript语言 28216.2.2 数据库、集合与文档 28316.2.3 添加数据 28412.2.4 查询数据 28516.2.5 修改数据 28616.2.6 删除数据 28716.3 项目实战—心情日记 28716.3.1 Node.js中的mongojs模块 28816.3.2 初始化数据 28916.3.3 主页的实现 29016.3.4 添加日记 29116.3.5 修改日记 29316.3.6 删除日记 29416.3.7 用户登录与退出 29516.4 要点回顾 297第17章 程序调试与异常处理 298视频讲解:20分钟17.1 使用console.log()方法调试程序 29817.2 使用WebStorm调试程序 29917.2.1 插入断点 29917.2.2 删除断点 30017.2.3 禁用断点 30117.2.4 断点调试 30217.3 Node.js程序异常处理 30317.3.1 使用throw关键字抛出异常 30317.3.2 Error错误对象 30417.3.3 使用try…catch语句捕获异常 30517.3.4 异步程序中的异常处理 30617.4 要点回顾 307第4篇 项目实战第18章 在线五子棋游戏 310视频讲解:33分钟18.1 需求分析 31018.2 游戏设计 31118.2.1 游戏功能结构 31118.2.2 游戏业务流程 31118.2.3 游戏预览 31218.3 游戏开发准备 31318.3.1 游戏开发环境 31318.3.2 游戏项目构成 31418.4 登录游戏房间设计 31418.4.1 登录游戏房间概述 31418.4.2 登录游戏房间的实现 31518.5 游戏玩家列表设计 31718.5.1 游戏玩家列表概述 31718.5.2 游戏玩家列表的实现 31718.6 游戏对战设计 31818.6.1 游戏对战概述 31818.6.2 游戏对战页面初始化 31918.6.3 绘制棋盘 32218.6.4 游戏算法及胜负判定 32418.6.5 重新开始游戏 32518.6.6 更改棋盘颜色 32618.7 要点回顾 327附录A JavaScript基础 328A.1 Node.js与JavaScript 328A.2 JavaScript在HTML中的使用 328A.2.1 在页面中直接嵌入JavaScript代码 328A.2.2 链接外部JavaScript文件 330A.2.3 作为标签的属性值使用 331A.3 JavaScript基本语法规则 331A.4 JavaScript数据类型 333A.4.1 数值型 333A.4.2 字符串型 336A.4.3 布尔值和特殊数据类型 338A.5 JavaScript流程控制 339A.5.1 条件判断语句 339A.5.2 循环控制语句 342A.6 JavaScript函数 345A.6.1 函数的定义 345A.6.2 函数的调用 346A.7 DOM 348A.7.1 DOM概述 348A.7.2 DOM对象节点属性 349A.7.3 DOM对象的应用 349A.8 Document对象 350A.8.1 Document对象介绍 350A.8.2 Document对象的常用属性 350A.8.3 Document对象的常用方法 351A.8.4 设置文档背景色和前景色 351A.8.5 设置动态标题栏 352A.8.6 在文档中输出数据 352A.8.7 获取文本框并修改其内容 353A.9 Window对象 354A.9.1 Window对象的属性 354A.9.2 Window对象的方法 355A.9.3 Window对象的使用 355