1、每次修改后端代码都要ctrl+c重启服务
2、在ECMAscript部分node和js其实是一样的,比如数据类型的定义,语法结构,内置对象
在js中的顶层对象:window
在node 中的顶层对象:global
注意:在node中也没有window
3、模块:
一个文件就是一个模块,每个模块都有自己的作用域
我们使用var来声明的一个变量,他并不是全局的,而是属于当前模块下的
4、模块加载机制:
路径:相对路径/绝对路径
处理流程:
(1)首先按照加载的模块的文件名称进行查找
(2)如果没有找到,则会在模块文件名称后加上.js后缀,进行查找
(3)如果没有找到,则会在模块文件名称后加上.json后缀,进行查找
(4)如果没有找到,则会在模块文件名称后加上.node后缀,进行查找
顺序:文件名称->.js->.json->.node
5、在一个模块中通过var定义的变量,其作用域范围是当前模块,外部不能直接访问
如果想一个模块能够访问另外一个模块定义的变量,可以:
(1)把变量作为global对象的一个属性,但是这样的做法不推荐
(2)使用模块对象module 即module.exports
在模块作用中,还有一个内置对象,exports,其实就是module.exports
6、__filename返回当前模块文件解析后的绝对路径,该属性并非全局,而是模块作用域下的
__dirname返回当前文件所在目录解析后的绝对路径,该属性不是全局,而是模块作用域下的
7、process对象是一个全局对象,可以在任何地方都能访问到他。
8、Buffer类用于操作二进制数据流
(1)当我们为一个Buffer对象分配空间大小后,其长度是固定的,不能更改
(2)如果我们想获得字符的个数可以直接使用lengh,如果想获得字节,可以先把字符串转化为buffer对象(一个中文字符占3个字节)