一、命令行窗口
1、打开方式:①cmd ②开始环境中直接找图标
2、通常称呼:终端、shell、小黑屏、cmd窗口
3、常用指令:cd 文件名 (跳转到文件夹下)
dir (列出当前目录下所有文件)
md 文件名 (创建文件)
rd 文件名 (删除文件)
4、目录
. 当前目录
..上一级目录
5、环境变量 path
把文件夹的路径配置到系统的环境变量中后,相当于把文件变成了一个全局变量
在cmd里寻找文件时,首先寻找当前目录,其次是上级目录,找不到就会报错。
二、线程与进程
1、进程
-- 负责为程序的运行提供必备环境
-- 进程就相当于工厂中的车间
2、线程
-- 线程是计算机中最小的计算单位,线程负责执行进程中的程序
-- 线程就相当于工厂中的工人
此外,进程又分为单线程、多线程;js就是单线程;这二者没有明显的好坏之分,只有适用得当
三、node.js简介
1、历史:数学家达尔瑞安在读博士时退学,然后享受惬意悠闲的生活,同时成为码农,以赚取生活费用。接外包两年后,开始处理更高阶的性能问题,但是他发现一个难以解决的问题:服务器和数据库之间的交互由于磁盘的限制,再无法加速,于是在2009年自己编写了node.js
而后经过8年的发展演变,node.js已经框如其名,像节点一样嫁接衍生,成为一个庞大的开源js运行环境
四、common.js
由于模块化的出现,代码的复用效率提高,但没有统一的标准会导致模块内容的重复和混乱,所以common.js出现了,它的目的就是为了规范化js模块。
引用:① require(“被引入的模块地址”) 写在使用模块中
exports 需要被暴露的变量或方法 写在被使用的模块中
② require ("名称") 直接写入模块名称,即可使用
引入自定义的js模块用第一种,用共用的核心模块就用第二种
定义:模块就是写的js文件
标识:① 核心文件 ② 文件模块
五、global 全局对象
类似于window
六、exports和module.exports
exports == module.exports 是true,他们是相同的;
但是
当修改他们的值时,含义是不同的,一直修改的是值,一个修改的是指向
//创建一个对象,在堆内存里就开辟了一个空间,存放内容
//栈内存中的对象就生成指针,指向堆内存中的内容
var obj = new Object()
obj.name = "洋芋果果";
var obj2 = obj;
obj2.name = "红薯豆豆";
console.log("obj.name");
console.log("obj2.name");
//打印结果都为“红薯豆豆”,因为obj2改变的不是本身,而是指针对应堆栈中的内容,obj和obj2指向的是同一内容
七、npm包简介
npm全称为 node package manager ,即节点包管理器,他的作用就是下载安装管理需要的包,类似于电脑管家。
下载了node.js之后,就会自动带有npm
包:包里面主要是两种文件,结构文件和描述文件,描述文件package.json比较重要,我们可以在里面看到包的一些简介比如用的方法、作者、版本等等,注意:json里不能写注释。
常用命令:
npm -v 查看版本
npm search 包名 搜索包
npm install 包名 下载包
npm remove 包名 删除包
npm install 包名 --save 下载包并添加依赖
npm install 下载当前项目中依赖里包含的包
为什么要用--save?
这是在pakage.json里添加依赖的
为什么要用依赖?
因为包A用到了包B的内容,就像链条一样,不用挨个下载;而且上传的时候是不会把包传上去的,太浪费空间了,都是网上公用的包,可以自己下载,依赖就像目录一样,可以自己查询到需要下载的包。
由于npm 是国外的,可能速度比较慢,所以咱们中国有自己的淘宝镜像,安装命令如下:
npm install -g cnpm --registry=https://registry.npm.taobao.org
如果cnpm不能安装成功,提示“因为在此系统上禁止运行脚本”,则需要以管理员身份打开power shell,把权限打开,输入命令 set-ExecutionPolicy RemoteSigned,选择Y,即可更改权限,再输入cnpm -v,即可查看版本,发现cnpm已安装成功。
除了npm、cnpm,还有一种包管理工具,叫yarn;他比npm更快,还能保持下载依赖的版本一致性,所以也可以下载yarn,命令为 npm install -g yarn
八、buffer缓冲区
用户向服务器发起请求和接受反馈时的数据就存贮在buffer里,buffer就类似于数组,但他更加强大,可以存储二进制文件,弥补了数组不能存储图片、音频的不足。
buffer的具体使用,可参考node.js官方文档
九、文件系统
名称 | 特点 |
同步文件 | 阻塞,顺序加载 |
异步文件 | 不阻塞,回调加载 |
简单文件 | 简单一次性写入 |
流式文件 | 适合大文件,分批写入 |
具体的使用同样可以在node.js的官网中找到