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