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;});}