1:global对象是一个全局对象,但是它是独立于js之外的,一般只放一些固定的值且多个js文件都要使用的值
2:console.assert(逻辑表达式,字符串);断言测试,主要用来测试的时候使用当逻辑成立的时候什么都不会做,当逻辑不成立的时候会报错,并且输出字符串
3:consloe.time()和consloe.timeEnd(),2个函数得成对出现,参赛为相同的字符串,用来判断一个代码片段执行的时间
4:__dirname获取当前文件所在的路径,__filename获取当前文件的全路径
5:在模块化开发的过程中,如果想使用一个东西只需要在文件中将他暴露出去,在另一个文件中引入就可以使用
6:每个js文件都有一个唯一的module对象引入的module对象为子对象
7:require其实就是硬盘中读取相应的js文件
8:使用exports暴露出接口时要使用对象的点属性去取,拿过来用的时候也要使用.属性去拿,可以暴露出去多个接口
9:在编写Js代码时尽量使用严格模式编写,能够避免程序出错
10:一旦异常出现抛出异常以后,程序便会中断执行,捕获异常,并把异常处理以后程序不会中断执行
11:使用try catch ,是不能捕获异步执行里面的异常,因为,同步代码执行顺序比异步代码快,要想捕获只能放在回调函数中进行捕获
12:使用writeFile()每写入一次文件就会把原来的文件内容覆盖掉,写文件时不要多个程序同时写入东西进一个文件
13:node文件系统中的函数如果文档中没有注释就是和Linux操作系统的命令相同的,功能也相同
14:readdir()只会读当前文件夹里的文件名,也就是自会读子文件,返回的数据是以数组形式返回的
15:let的作用域只作用在一个方括号里
16:es6字符串拼接方法:`es6${str}的拼接`
17:node读写大文件时候采用文件流的形式,通过 fs.createReadStream读取文件流,fs.createWriteStream,来写文件,最后通过pipe将读写连接起来,原理就是采用缓存的形式,一边读,一边写
18:百分比读取文件就是,先获取文件的长度,然后通过流检测每次读取文件的大小,然后就能完成该功能
19:80端口是默认端口,一般请求如果不加上端口号就是默认请求的80端口;
20:cookie是吧数据存储在客户端的,且不能存储大量的数据,seesion是把数据存储在服务器端的,客户端只存储了key,需要指的时候向服务器端发起请求,通过key找到Value
21:字符串的substr同substring的区别,参数不同前者是从开始位置截取指定长度,后者是从开始截取到指定结束位置
在循环中嵌套异步语句无法保证谁先执行
把异步变成同步,使用递归来解决在循环语句中嵌套异步函数的问题
在匿名自调用函数前面一定要加;不然会报错
fs模块找文件是从光标的位置开始找,所以在使用fs模块的时候最好使用绝对路径__dirname+'/文件名'
22:express框架的使用
1:使用中间件去读取静态文件
npm install express-static
2:接收post请求
需要中间件body-parser,然后通过链式调用能够拿到req.body里面的值,链式调用是通过next来实现的
3:cookie,session
需要中间件:cookie-parser,cookie-session,cookie是往上访问的
加密cookie使用cookie-encrypter这个中间件
4:cookie-session
这个中间件中的key参数是需要传递一个数组,加密时采用的的是数组第0个元素来加密,而数据的其他元素则作为秘钥来解密
5:consolidate
帮助express来适配更多的模板引擎
6:服务器在调用接口的时候是自上而下逐步匹配的,所以默认的应该 放在最后,当匹配到了就不会往下继续匹配了
7:router
每一个router都相当于一个小的服务器,就是将一个大型服务器进行拆分成不同的路由,每个路由之间还可以继续嵌套路由