【Node】fs
var fs = require('fs') // fs 文件系统
var stdin = process.stdin
var stdout = process.stdout
var stats = [] fs.readdir(process.cwd(), function(err, files) {
console.log('')
if (!files.length) {
return console.log(' \003[31m No files to show!\003[39\n')
}
console.log(' Select which file or directory you want to see\n') function file(i) {
var filename = files[i]
fs.stat(__dirname + '/' + filename, function(err, stat) { // fs.stat会给出文件或目录的元数据
stats[i] = stat
if (stat.isDirectory()) {
console.log(' '+i+' \033[36m' + filename + '/\033[39m')
} else {
console.log(' '+i+' \033[90m' + filename + '/\033[39m')
}
if (++i == files.length) {
read()
} else {
file(i)
}
})
}
function read() {
console.log('')
stdout.write(' \033[33mEnter you choice: \033[39m')
stdin.resume()
stdin.setEncoding('utf-8')
stdin.on('data', option)
} function option(data) {
var filename = files[Number(data)]
if (!filename) {
stdout.write(' \033[31mEnter your choice: \033[39m')
} else {
stdin.pause()
if (stats[Number(data)].isDirectory()) {
fs.readdir(__dirname + '/' + filename, function(err, files) {
console.log('')
console.log(' (' + files.length + ' files)')
files.forEach(function(file) {
console.log(' - ' + file)
})
console.log('')
})
} else {
fs.readFile(__dirname + '/' + filename, 'utf-8', function(err, data) {
console.log('')
console.log('\033[90m' + data.replace(/(.*)/g, ' $1') + '\033[39m')
})
}
}
} file(0)
})
console.log('Hello world')
process.stdout.write('Hello world')
console.log('Hello world')
console.log内部做了这样的事情:它在指定的字符串后加上\n(换行)字符,并将其写到stdout流中
【Node】fs的更多相关文章
- 【node】fs模块,文件和目录的操作
检查文件是否存在,查询文件信息 fs.stat() fs.stat('./server.js', function (err, stat) { if (stat && stat.isF ...
- [转]【NODE】用WS模块创建加密的WS服务(WSS)
[From] https://luojia.me/2015/07/21/%E3%80%90node%E3%80%91%E7%94%A8ws%E6%A8%A1%E5%9D%97%E5%88%9B%E5% ...
- 【node】安装和配置node项目文件
需要把 views文件中的子文件全部改为以 .ejs的后缀 1·npm install express -g (全局安装) 2·npm install -g express-generator (安装 ...
- ☀【Node】处理文件上传
Node入门 √http://www.nodebeginner.org/index-zh-cn.html Node.js中所用的fs.renameSync出错:Error: EXDEV, cross- ...
- 【Node】node.js实现服务器的反向代理,解决跨域问题
跨域对于前端来说是一个老大难的问题,许多方法如jsonp.document.domain + iframe...都有或多或少的问题,一个最佳实践就是通过服务器nginx做反向代理,但奈何不懂相关知识, ...
- ☀【Node】处理POST请求
Node入门 √http://www.nodebeginner.org/index-zh-cn.html index.js var server = require("./server&qu ...
- -_-#【Node】Express 400 Error: ENOENT, open
Express 400 Error: ENOENT, open cd alleatisland, node app来启动
- 【node】记录项目的开始与完成——pipeline_kafka流式数据库管理项目
前言: 我始终坚信的一点是,学习的效果80%来自总结,甚至全部都是.总结的好处就是让你能翻出你的过往,指出其中的不足,看到未来的改进方法,好的总结更能让知识产生飞跃,所以在工作之余,部署项目之际,总结 ...
- 【node】使用nvm管理node版本
写在前面 nvm(nodejs version manager)是nodejs的管理工具,如果你想快速更新node版本,并且不覆盖之前的版本:或者想要在不同的node版本之间进行切换: 使用nvm来安 ...
随机推荐
- @class的基本使用
2-@class 的基本使用 1, @class的作用 @class 允许简单的引用类,即类的声明.告诉编译器,后面代码中可能会使用到的类名. 好比函数声明一样. 2, #import的作用 与 #i ...
- redis基本数据类型【3】-List类型
列表类型采用双向链表实现的,借助列表类型redis还可以作为队列使用,一个列表类型key最多能容纳2^32-1个元素 1.向列表两端增加元素 #向左边增加元素,返回增加后列表的长度 lpush key ...
- Ubuntu_14.04安装docker
Ubuntu_14.04安装docker $ sudo apt-get update $ sudo apt-get install apt-transport-https ca-certificate ...
- (转) oc static extern 和const
static 全局的,可以改的,如果在一个类中声明static,类中其他地方用到的时候,也是使用的改变量.和java类似,但不能用类名直接访问. const 是常量,不可以改的 extern 1.假如 ...
- ubuntu基本使用
sudo nautilus xxx指定目录去打开 这个命令就是以root权限打开一个窗口,来管理文件
- React组件一
<div id='test'></div> <script type='text/babel'> var Zu=React.createClass({ return ...
- placeholder属性兼容js支持
$(function(){ //判断浏览器是否支持placeholder属性 supportPlaceholder='placeholder'in document.createElement('in ...
- 一分钟搭建Webpack+react+es6框架
最近react刷屏的厉害,而随着它一起走进我们视野的还有webpack,webpack只是个工具,为什么如此火呢?因为简单好了不废话. 直接进入正题: 打开命令行工具: npm install - ...
- 已经安装php后,再增加扩展模块(不重新编辑php)
下面以安装curl为例,介绍具体安装步骤. 1.安装crul wget http://curl.haxx.se/download/curl-7.19.6.tar.gz tar -zxvf curl-7 ...
- Linux文件3个时间点(access time,modify time,change time)
在Linux中使用stat命令来查看文件的详细信息. 如图所示,会出现3个类型的时间,分别是Access,Modify,Change. access time:表示最后一次访问(仅仅是访问,没有改动) ...