课堂测验
使用说明:
- 推荐使用 Anki 软件,辅助记忆
- 一定要自行创建问题卡片,并搜集和整理答案
- 在能够理解答案,并能独立动手操作的前提下,再去记忆
- 按照课程进度,添加新的问题卡片
- 每天利用碎片化时间,根据 Anki 提示,复习卡片
- 问题如果有歧义或有其他任何问题,欢迎留言
1. Node.js 简介
1.1. 课程说明及 Node.js 简介
- 为什么选择 Linux 作为开发环境
- 本课程会学到哪三种类型的应用程序开发
- Node.js 是什么
- Node.js 作为 JavaScript 的运行环境,包括哪两层含义
- 把 Node.js API 分为哪两类
- Node.js 架构分几层?分别是什么,画图表示
- JavaScript 语言前端开发和后端开发的环境是什么,画图表示
- 阻塞 I/O 和非阻塞 I/O 的区别是什么
- Node.js 的创始人是谁
- 创建目录的 Linux 命令是什么
- 查看当前目录下的文件或文件夹的 Linux 命令是什么
- 进入到某个子目录的 Linux 命令是什么
- 如何清空命令行的内容
- 创建并打开文件的命令是什么
- JavaScript 语法中,如何在控制台输出信息
- 在 Node.js 中运行某个脚本文件的命令是什么
- REPL 是什么?如何进入 REPL 模式
- 如何退出 REPL 模式
- 运行 Node.js 脚本文件时,如果想省略 node 命令,需要如何操作
- 增加 Linux 文件的可执行权限,如何操作
- 复制文件的 Linux 命令是什么
- 查看文件内容的 Linux 命令是什么
1.2. 开发环境搭建
- vmware workstation 默认安装,创建的 vmnet1 和 vmnet8 网卡,分别支持哪种网络协议
- NAT 地址模式中,linux 虚拟机中的 IP 地址上网有什么要求,默认网关地址是什么
- 查看 linux IP 地址的命令是什么
- 如何修改 linux 系统的 IP 地址设置
- 修改完 IP 地址设置后,如何让 IP 地址立刻生效
1.3. vim 编辑器
- 命令行界面下的文字处理软件主流的是哪三个
- vi 缩写于什么
- vim 是什么的缩写
- 怎样启用 vi 和退出 vi
- 如何回到 normal 模式
- 普通模式中,向右、向左移动一个字符的快捷键分别是什么?向上,向下移动一行的快捷键分别是什么
- 普通模式中,移动到当前行首和行尾的快捷键分别是什么
- 普通模式中,向上翻一页和向下翻一页的快捷键分别是什么
- 普通模式中,在当前光标后追加文本的快捷键是什么?在行位追加文本的快捷键是什么?在行首追加文本的快捷键是什么
- 普通模式中,在光标前一行和下一行,添加新行的快捷键分别是什么
- 怎样删除一个字符?怎样删除一行?怎样删除一个单词
- 复制当前行和粘贴的快捷键是什么
- 怎样同时打开多个文档
- 怎样实现文档之间的切换
- 在插入模式下如何前、后、上、下,移动光标
- 在插入模式下快捷键如何删除当前光标前的一个单词?如何删除当前光标到行首?如何删除当前光标到行尾
2. 全局(上)
2.1. 全局变量
- Node.js 的 API 分为哪两类
- 全局路径变量是什么?其返回值是什么
- 全局文件名变量是什么?其返回值是什么
2.2. 控制台
- 全局控制台对象是什么
- 控制台打印日志信息的语句是什么
- JS 中的占位符有哪三种
- 标准输出流和标准错误流分别是什么
- 如何在控制台输出标准输出流和标准错误流
- 将标准输出流重定向到一个文件中要如何操作
- 将标准错误流重定向到一个文件中要如何操作
2.3. 进程
- 进程对象是什么
- 进程对象指的是什么?可以通过它获得哪些信息
- 如何获得当前程序宿主的 CPU 架构
- 如何获得当前程序宿主的系统信息
- 如何获得当前进程的 ID
- 如何获得 node.js 执行的绝对路径
- 在命令行如何查看当前运行的进程
- 使进程不结束的两种方法是什么
- 如何获得当前用户的 ID
- 如何获得当前位置路径
- 在命令行如何查看当前位置路径、用户 ID、Node.js 版本这些信息
- 如何查看系统的常驻内存大小
- 如何查看 V8 动态分配的总内存大小
- 如何查看 v8 动态分配的已用内存大小
- 如何查看 v8 管理的绑定到 JS 对象上的 C++ 对象的内存
- 如何获得命令行参数
- 在命令行中如何查看程序退出码
- 如何指定程序退出码
- 标准输入流一般指哪里
- 标准输出流一般指哪里
- 如何在命令行向某进程发信息
2.4. 定时器
- 和定时器相关的全局函数有哪些
- 延迟执行和取消延迟执行的函数是什么?以及他们如何使用
- 周期执行和取消周期执行的函数是什么?以及他们怎么使用
- 取消周期执行的方法有三种,是哪三种
3. 全局(下)
3.1. 全局:Buffer
- Buffer 对象的用途是什么
- 如何实例化一个 Buffer 对象
- Buffer 对象的填充方法是什么
- 实例化 Buffer 的三种方法分别是什么
- Buffer 支持的六种编码格式分别是什么
- 把字符串转化成另一种编码格式用的方法是什么
- 在网页中内嵌图片的 HTML 代码是怎样的?在 HTML 中嵌入图片的好处是什么
- 调用文件模块的语句是怎样的
- 调用 HTTP 模块的语句是怎样的
- 计算机上的数据分为哪两种
- BMP 缩写于什么
- 如何从 Linux 命令行获取网页上的图片
- 在 XShell 的 Linux 命令行,怎样保存文件到 Windows 本机上
- 位图二进制文件格式是怎样的
- 写入二进制数据用的是什么方法
3.2. 全局:模块管理
- Node.js 中进行模块管理的全局对象有哪几个?分别是什么功能
- JS 模块化的两种方案是什么
- 什么时候要用 require()
- npm 是什么的缩写?有什么作用
- Node.js 项目配置文件名是什么?怎么生成这个文件?文件是什么格式
- 如何安装要使用的第三方模块
- 使用 package.json 配置文件管理第三方模块的过程是怎样的
- 删除一个文件夹的命令是什么
- 用什么方法让别人可以使用我们自定义的模块
- 怎样暴露模块中的一个变量
- 怎样暴露模块中的一个函数
- Node.js 中 require() 返回的是什么
- 画图表示怎样加载一组相关的模块
- Node.js 中的顶层对象是什么
- 前端中的顶层对象是什么
- 查看 module 时,都包含哪些信息
4. 事件
- Node.js 提供的四种异步编程的机制分别是什么
- 用回调函数实现异步操作的两种状态是什么
- 事件的三要素是什么
- EventEmitter 引自哪个模块
- 如何引用某模块的某个接口(可用 EventEmitter 举例)
- EventEmitter 对象发出事件的方法是什么
- 使自己的类有事件机制的两种方法分别是什么
- 类的继承有哪两种方法
- util 的 inherits 方法的使用格式是怎样的
- 查看某个类的所有事件的方法是什么
- 查看某个类的某个事件的所有监听个数的方法是什么
- 查看某个类的某个事件的所有监听的方法是什么
- 复制 EventEmitter 中的方法,如何实现
- JavaScript 提供什么方式来进行错误处理
- 在 Node.js 中如何进行错误处理
- 我们如何获得 error 对象
- 在代码中,如何对事件的名称进行有效的管理,避免发生名称引用错误
- 复制 EventEmitter 中的方法的语句是什么
5. 流
- Node.js 应用程序有两种缓存的处理方式,分别是什么
- 带行号查看某文件中代码的命令是怎样的
- 统计某文件代码行数的命令是怎样的
- 带行号查看当前目录下所有脚本文件内的所有代码的命令是怎样的
- 统计当前目录下所有脚本文件的代码行数的命令是怎样的
- 统计当前目录下所有脚本文件的非空代码行数的命令是怎样的
- Node.js 中有哪些模块部署了数据流接口
- 把字母转换成大写的函数是什么
- 如何在命令行请求服务器端的文件
- 共有几种类型的数据流
- 可读数据流有哪两种状态
- 可读流在刚刚创建的时候出于什么状态
- 有哪三种方法可以让暂停态转为流动态
- 有哪两种方法可以让流动态转为暂停态
- 实现一个自定义的可读流需要哪三个技术要点
- 可写流的特点是什么
- pipe() 方法如何使用
- 有哪些场合部署了可写流
- 往可写流中写入数据用的是哪个函数?结束写入数据用的是哪个函数
- 创建一个自定义的可写流需要哪三个技术要点
- 转换流(传输流)有怎样的特点
6. 文件系统
- 对文件系统的操作用的是 Node.js 中的哪个模块
- fs 缩写于什么
- fs 模块的操作对象有哪四种
- cat 命令缩写于什么
- fs 模块的方法分为哪两种操作方式
- 默认的文件描述符有哪三种
- 复制文件的 Linux 命令是什么?如何使用
- 编程实现文件复制功能的关键步骤是什么
- 创建一个新文件的 Linux 命令是什么
- touch 命令除了创建新文件还有什么用途
- 在 vim 编辑器中,如何打开另一个文件
- 用 Linux 命令如何修改文件名
- 用 Linux 命令如何移动文件位置
- 编程实现 mv 命令的功能时,可以用 fs 模块的哪个方法
- 移除文件的 Linux 命令是什么
- 编程实现 rm 命令的功能时,可以用 fs 模块的哪个方法
- 创建文件夹的 Linux 命令是什么
- 编程实现 mkdir 命令的功能时,可以用 fs 模块中的哪个方法
- 如何在 Linux 命令行删除一个文件夹
- 编程实现删除文件夹功能时,可以用 fs 模块的哪个方法
- 创建链接的 Linux 命令是什么
- 编程实现链接功能时,实现硬链接和符号链接分别用到了哪个方法
- 修改文件所有者信息的 Linux 命令是什么
- 编程实现 chown 命令的功能时,可以用哪个方法
- 修改文件权限的 Linux 命令是什么
- 编程实现 chmod 命令的功能时,可以用哪个方法
- 查看文件详细信息的 Linux 命令是什么
- 编程实现 stat 命令的功能时,可以用哪个方法
- 实现监视一个目录或一个文件的程序,可以用哪个方法
- 用管道的方式查看某进程的 ID 号的 Linux 命令是怎样的
- fs 模块的同步方法适用什么样的场合
7. 调试
- 【待补充】
8. 子进程
- child_process 模块提供了哪四种不同的方法来执行外部应用程序
- 上述四种方法中唯一可以使用 subshell 的是哪个
- execFile 方法的语法格式是怎样的
- execFile 方法调用外部程序,外部程序的执行结果放在哪里
- 查看所有环境变量的 Linux 命令是什么
- 查看路径环境变量的 Linux 命令是什么
- 在 node.js 中如何查看路径环境变量
- 如何用 Linux 命令给路径环境变量增加目录
- 在用 execFile 方法调用外部程序时,可能出现的三种错误分别是什么?给出怎样的错误信息
- spawn 方法的语法格式是怎样的
- spawn 方法调用外部程序,外部程序的执行结果放在哪里
- spawn 方法相比较 execFile 方法有什么优势
- 对文本进行排序的 Linux 命令是什么
- 对文本去除重复的 Linux 命令是什么
- 用 spawn 方法实现对文本的排序去重该怎么操作
- exec 方法的语法格式是怎样的
- exec 方法调用外部程序,外部程序的执行结果放在哪里
- exec 方法相较前两种方法的特点是什么
- 分离父子进程的操作原理是怎样的
- fork 方法的语法格式是怎样的
- fork 方法调用外部程序,外部程序的执行结果放在哪里
- fork 方法相较前三种方法有怎样的特点
- IPC 缩写于什么
- 前面四种方法都是异步的,前三种有相对应的同步方法,分别是什么
- 请画出四种方法使用的决策树
9. 网络系统
- 创建一个 TCP 协议的服务器程序,用到了 node 的哪个模块
- 创建一个 TCP 协议的服务器程序,可以用哪个方法
- createServer 方法的返回值是什么
- telnet 缩写于什么
- telnet 是什么?作用是什么
- 如何安装 telnet
- 如何退出 telnet
- 如何使用 telnet 访问服务器
- FTP 是什么?作用是什么
- 如何安装 ftp
- 如何链接 ftp 服务器
- 匿名访问 ftp 服务器的用户 ID 是什么
- 创建 TCP 客户端程序用哪个方法来实现
- TCP 协议使用的是哪种数据流
- UDP 协议适用于哪些场合
- nc 是什么?缩写于什么
- 实现一个 UDP 协议的服务器程序的原理是怎样的
- 实现一个 UDP 协议的客户端程序,向 UDP 服务器发送文件数据可以用哪个方法
- 编程实现一个 HTTP 协议的服务器,用到了 node.js 的哪个模块
- 编程实现一个 HTTP 协议的服务器,可以用哪个方法
- createServer() 有一个回调函数的可选参数,这个回调函数有什么作用
- 在创建 HTTP 协议的客户端程序时,用到了 http 模块的 get 方法,get 方法的语法是怎样的
- HTTP 协议除了 GET 和 POST 外,还有哪些请求方法
- 如何升级 Node.js 的版本
- 新安装的 Node.js 不在原来的目录下,不能直接运行之前写好的脚本文件,如何解决
- 编程实现向 HTTP 服务器发送 POST 请求时,可以用哪个方法
- HTTP 协议的 GET 请求和 POST 请求在使用上有何区别
- DNS 缩写于什么
- 编程实现域名解析用到了 Node.js 的哪个模块中的哪个方法
10. HTTP 客户端编程
- 响应报文的结构是怎样的
- 状态行中包含哪三个信息
- 响应头部字段列表以什么形式呈现
- 状态码有几种?分别表示什么信息
- 请求报文的结构是怎样的
- 请求行中有哪三个信息
- HTTP 协议原生支持的两个基本认证是什么
- 从本质上来说 Apache 服务的作用是什么
- REST 缩写于什么?是什么意思
- 表现层是什么意思
- URL 是什么的缩写
- HTTP 协议中四个表示操作方式的方法分别是什么
- 在 Linux 命令行用 GET 方法获取数据的命令是怎样的
- 在 Linux 命令行用 POST 方法上传数据的命令是怎样的
- 在 Linux 命令行用 DELETE 方法删除数据的命令是怎样的
- 在 Linux 命令行用 PUT 方法替换数据的命令是怎样的
- 在前端代码中调用 HTPP API 的方法有什么
- 怎样用 fetch 函数通过 PUT 方法替换数据
- 怎样用 fetch 函数通过 POST 方法上传数据
- 怎样用 fetch 函数通过 DELETE 方法删除数据
- SSL 是什么的缩写?是什么意思
- 在 Linux 命令行产生一个密钥的命令是怎样的
- 在 Linux 命令行生成证书的命令是怎样的
11. HTTP 服务端编程
【待补充】
12. HTTP 高级编程
【待补充】
13. 数据存储
【待补充】
14. Koa 框架
【待补充】