有關node.js異步以及常用插件的一點了解

node.js是做什麼的不再贅述。在使用的過程中有幾個組件,又叫第三方插件,覺得比較好用。

node.js的異步在無堵塞優勢的強大下,又留下了回調大坑,是初次接觸node的程序員心裏難以磨滅的傷痕。很多情況下,不得不在強大的異步氛圍中尋求如何同步的方法。

幾種第三方插件,我還是喜歡用async,詳細的API說明:

在async函數體中,當使用callback跳到下一條函數體的時候,一定不要再使用return操作。

同時還有豐富了例子以供參考,可喜的是,還附有中文註釋。

moment.js,node下或者js下對時間日期的插件,也是相當的強悍,支持各種顯示以及日期運算,只有你想不到,沒有它做不到:

node連接redis插件:

node連接zookeeper:

node增加log4js

參考:

https://github.com/nomiddlename/log4js-node

http://blog.fens.me/nodejs-log4js/

var log4js = require('log4js');
var express = require('express');
var app = express();

log4js.configure({
//此配置最好配置爲獨立json文件引入
 appenders: [
    { type: 'console' },{
      type: 'file', 
      filename: 'logs/access.log', 
      maxLogSize: 536870912,//單位 b
      backups:2
     //<code>category:'jjj'    去掉後找不到appenders   默認這兩個,否則,有可能輸出不到日誌文件裏面</code>
 }
  ],
  replaceConsole: true
});
//var logger = log4js.getLogger(name);
//logger.setLevel('INFO');

app.use(log4js.connectLogger(log4js.getLogger(), {level:'auto', format:':method :url'}));


exports.logger=function(name){
  var logger = log4js.getLogger(name);
  logger.setLevel('INFO');
  return logger;
}


在使用的過程中,我也嘗試在回調函數裏面返回結果,不得不採取一下方式解決:

<pre name="code" class="javascript">//result要定義在函數外,若在此函數內,那麼return時候,那麼可能還是undefined
        var result='';
function getInfo(){var blackList=redis.get('blackList',function(res){result=res;return;});}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章