node学习中的一些总结

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都相当于一个小的服务器,就是将一个大型服务器进行拆分成不同的路由,每个路由之间还可以继续嵌套路由node学习中的一些总结