一、遍历目录结构组件walk ndir
walk和ndir都可以用来遍历目录结构。在node开发过程中我们可能需要遍历某个目录这时我们可以自己写一个递归也可以直接使用这两个模块。
1:ndir
npm:ndir - npm
npm install ndir
var ndir = require('ndir')
// 回调方式
ndir.walk('./', function onDir(dirpath, files) {
console.log(' * %s', dirpath);
for (var i = 0, l = files.length; i < l; i++) {
var info = files[i];
if (info[1].isFile()) {
console.log(' * %s', info[0]);
}
}
}, function end() {
console.log('walk end.');
}, function error(err, errPath) {
console.error('%s error: %s', errPath, err);
})
// 或者用监听的方式
var walker = ndir.walk('./');
walker.on('dir', function(dirpath, files) {
console.log(' * %s', dirpath);
for (var i = 0, l = files.length; i < l; i++) {
var info = files[i];
if (info[1].isFile()) {
console.log(' * %s', info[0]);
}
}
});
walker.on('error', function(err, errPath) {
console.error('%s error: %s', errPath, err);
});
walker.on('end', function() {
console.log('walk end.');
})
2:walk
npm:walk - npm
npm install --save walk
var walk = require('walk');
var fs = require('fs');
var walker;
walker = walk.walk("/tmp", options);
walker.on("file", function (root, fileStats, next) {
fs.readFile(fileStats.name, function () {
// doStuff
next();
});
});
walker.on("errors", function (root, nodeStatsArray, next) {
next();
});
walker.on("end", function () {
console.log("all done");
});
3:nodejs
给一个本地路径 nodejs 怎么读取这个路径下的所有文件把这些文件罗列出来 - CNode技术社区
二、热部署
1:supervisor
npm install -g supervisor->supervisor app.js
2:hotnode
npm install -g hotnode->hotnode app.js
三、koa-onerroe错误处理
npm install koa-onerror
const onerror = require('koa-onerror');const app = new koa();onerror(app);
四、日志log4js
npm install --save log4js
var log4js=require('log4js');
log4js.configure('log.json');
log4js.configure({
appenders: {
out: { type: 'stdout' },//设置是否在控制台打印日志
info: { type: 'file', filename: './logs/pattern_', 'pattern':'yyyy-MM-dd.log', alwaysIncludePattern:true},
info_2: { type: 'file', filename: './logs/info_2.log' },
just-errors: { type: 'file', filename: './logs/error.log' },
'error': { type: 'logLevelFilter', appender: 'just-errors', level: 'error' }
},
categories: {
default: { appenders: [ 'out', 'info', 'info_2', 'error' ], level: 'info' }//去掉'out'。控制台不打印日志
}
});
var logger = log4js.getLogger();
logger.level = 'debug';
logger.debug("Some debug messages");
var logger_2 = log4js.getLogger('info_2');
logger_2.info("~~~info~~~~");
var logger_3 = log4js.getLogger('error');
logger_3.error('');
五、远程调试工具weinre
npm -g install weinre
weinre --boundHost [IP_address] --httpPort [port] (IP_address 是pc的ip地址, 不能是127.0.0.1,port可以输入一个随便的端口)
weinre --boundHost 192.168.1.131 --httpPort 1234
192.168.1.131:1234可用访问调试端页面
客户端放入<script src="http://192.168.3.131:1234/target/target-script-min.js#anonymous"></script>
六、http-server静态资源服务器
npm i -g http-server
http-server <path> -a 0.0.0.0 -p 8080 -c-1(去缓存)
七、yarn一个软件包管理器
npm - -g yarn 安装
yarn set version latest 更新
yarn或yarn install 安装所有依赖=npm install
yarn global add xxx 全局安装=npm install -g
yarn add xxx@xx 添加依赖=npm install xxx -S
yarn add xxx --dev/peer 添加依赖=npm install xxx -D
yarn up xxx@xx 更新依赖
yarn remove xxx 删除依赖
yarn global dir/bin 查看全局安装位置和bin目录
yarn config set global-folder "D:\Program Files\nodejs\yarn\global" 修改全局安装位置
yarn config set cache-folder "D:\Program Files\nodejs\yarn\cache" 修改缓存位置