NodeJS笔记

函数内部单线程、异步执行

Nodejs是单线程,但是异步,为的是提高执行效率,因此如果一个函数中有回调耗时函数,会异步执行,日志打印信息会有先后顺序
单线程,就是会从头执行到尾,但是由于有异步,回调函数的存在.才能使程序高效.
这里先查数据库,一个异步函数,查数据库需要时间(数据库查找,),所以执行后,就放一个监听器,也就是回调函数,
js代码继续执行下面的console.log(2),等监听器,监听到数据库返回了数据时,才会执行,数据库查询回调函数里面的事情,也就是输出1;
所以上面的事情是这样发生的,
1.先查数据库 ,-->监听回调,等待数据库响应
2.继续执行console.log(2);
3.数据库响应数据了,继续执行.
注意一下执行队列,回调函数只是把回调放到当前队列的最前面,而不是立即执行.例如前面一个大循环需要几秒钟,那么回调函数就需要等待执行完,才会继续执行.

单点登录

  • 用CAS进行单点登录注意事项:

    • 依赖cas-authentication

      npm install cas-authentication
      
    • 修改cas-authentication源码

      index.js中的requestOptions需要添加如下2个字段:

          strictSSL: false,(这个可以不加)
          rejectUnauthorized: false, 
      

      原因是: As of February 27, 2014, npm no longer supports its self-signed certificates.

      ​ 2014年2月27日,npm不再支持自签名证书。

    • 修改源码, 把_login函数中的renew: this.renew注释掉,否则在异步跨域访问的时候单点登录需要重新登录
      //renew: this.renew

bluebird

说明

为了解决nodejs的回调地狱,增强代码可读性以及健壮性

安装

npm install bluebird

官方文档

http://bluebirdjs.com/docs/getting-started.html

pug

安装

npm install pug

官方文档

https://www.npmjs.com/package/pug

lodash

安装

npm install lodash

官方文档

http://lodashjs.com/docs/#_padstring-length0-chars

你可能感兴趣的:(NodeJS笔记)