node.js学习第一篇

这篇从一个基本的读取本地文件案例,大概介绍了node.js的写法,代码如下

 1 var fs = require(‘fs‘);
 2 var stats = [];
 3 fs.readdir(process.cwd(), function(err, files){
 4     console.log(files);
 5     console.log(‘ ‘);
 6     if(!files.length){
 7         return console.log(‘  \033[31m No file to show!\033[39m\n‘);
 8     }
 9     console.log(‘  Select which file or directory you want to see\n‘);
10     function file(i) {
11         var filename = files[i];
12         fs.stat(__dirname + ‘/‘ +filename, function (err, stat) {
13             stats[i] = stat;
14             if(stat.isDirectory()){
15                 console.log(‘  ‘+i+‘  \033[36m‘ + filename + ‘/\033[39m‘);
16             } else {
17                 console.log(‘  ‘+i+‘  \033[90m‘ + filename + ‘\033[39m‘);
18             }
19             i++;
20             if(i == files.length){
21                 console.log(‘ ‘);
22                 process.stdout.write(‘  \033[33mEnter your choice: \033[39m‘);
23                 process.stdin.resume();
24                 process.stdin.setEncoding(‘utf8‘);
25                 process.stdin.on(‘data‘, function (data) {
26                     var filename = files[Number(data)];
27                     if(!files[Number(data)]){
28                         process.stdout.write(‘  \033[33mEnter your choice: \033[39m‘);
29                     } else {
30                         process.stdin.pause();
31                         if(stats[Number(data)].isDirectory()){
32                             fs.readdir(__dirname + ‘/‘ +filename, function (err, files) {
33                                 console.log(‘ ‘);
34                                 console.log(‘  ( ‘+files.length + ‘files )‘);
35                                 files.forEach(function (file) {
36                                     console.log(‘  -  ‘ + file);
37                                 });
38                                 console.log(‘ ‘)
39                             })
40                         } else {
41                             fs.readFile(__dirname+‘/‘+filename, ‘utf8‘, function (err, data) {
42                                 console.log(‘ ‘);
43                                 console.log(‘\033[90m‘+ data.replace(/(.*)/g, ‘  $1‘)+‘\033[39m‘);
44                             })
45                         }
46                     }
47                 })
48             } else {
49                 file(i);
50             }
51         })
52     }
53     file(0);
54 });

原文地址:https://www.cnblogs.com/passerma/p/11067425.html

时间: 2024-11-05 18:54:47

node.js学习第一篇的相关文章

node.js学习第一天

执行代码console.log('hello world'); 2.回调函数 由于node是一个异步事件驱动的平台,所以在代码中我们经常需要使用回调函数.下面是回调函数应用的经典示例: setTimeout(function(){ console.log('callback is called'); },2000); 我们传给setTimeout函数传入了一个匿名函数和一个调用时间2000(毫秒),运行程序后等待2秒,可以看到输出了“callback is called”. 问题一:如果你要为s

JS学习第一篇-Array

Array声明      1.var arr=[1,2,3,.......,n]; 2.var arr=new Array(n); 3.var arr=new Array(1,2,3,...,n); Array对象属性(常用) length    查看数组的长度    [例]var arr=[1,2,3];   document.write(arr.length);   //输出结果3 Array对象方法(常用) 方法名 功能 具体使用例子 concat() 连接两个或更多的数组,并返回结果 v

node.js 学习 00

前言 先写点废话,相中node.js倒是纯属偶然. 在这之前我想要要搭建一个人网站,我感到现有的博客/空间之类只能给予用户有限的控制力.于是在AWS上申请了免费一年的VPS,自己买了一个域名,百度了之后选择了在主机上挂了一个nginx.在这之后我发现直接手写html是一件十分麻烦的事情,于是暂时失去了构建的方向.只是改了改nginx的默认的主页,就先放着了. 在这之后的新学期里,我多一门 数据库原理 的课程,在这之前我通过王垠的博客了解过Nosql的一些概念.数据库原理老师对传统关系性数据库的吹

Node.js 学习一

Node.js是一个可以让javascript运行在服务器端的平台.node.js是一个为实时web应用开发而诞生的平台,它考虑到了实时响应/超大规模数据要求下架构的可扩展性.它采用了单线程,异步石IO,事件驱动式的设计模式. Node.js有着强大而灵活的包管理器(node package manager)npm node.js 架构设计:1,异步式I/O,事件驱动 2,V8引擎作为javascript引擎 3,高效的libev事件驱动库 4,高效的libeio异步I/O库 CommonJS:

Node.js Stream-基础篇

Node.js Stream - 基础篇 邹斌 ·2016-07-08 11:51 背景 在构建较复杂的系统时,通常将其拆解为功能独立的若干部分.这些部分的接口遵循一定的规范,通过某种方式相连,以共同完成较复杂的任务.譬如,shell通过管道|连接各部分,其输入输出的规范是文本流. 在Node.js中,内置的Stream模块也实现了类似功能,各部分通过.pipe()连接. 鉴于目前国内系统性介绍Stream的文章较少,而越来越多的开源工具都使用了Stream,本系列文章将从以下几方面来介绍相关内

NODE.JS学习的常见误区及四大名著

NODE.JS学习的常见误区及四大名著 前段时间由于不满于社区里很多人对于NODE.JS的种种误解而写了一篇文章名为: NODE.JS之我见:http://www.cnblogs.com/pugang/p/4374681.html 收到了很多兄弟的热情回复和激烈讨论,在此深表感谢,有的朋友觉得我写的比较粗犷,没有给出具体的性能分析和对比,在此我想说的是其实好多东西的性能分析,根本就不用我写到博客上,其一是如果我写了,很多人同样会觉得不客观,不中立,其二是网上很多中立的机构,随便搜索一下,对比太多

Node.js学习笔记(3) - 简单的curd

这个算是不算完结的完结吧,前段时间也是看了好久的Node相关的东西,总想着去整理一下,可是当时也没有时间: 现在看来在整理的话,就有些混乱,自己也懒了,就没在整理,只是简单的记录一下 一.demo的简单介绍 这次demo,只涉及到简单的curd操作,用到的数据库是mongo,所以要安装mongo数据库,数据库连接驱动是mongoose: 当然关于mongo的驱动有很多,比如mongous mongoskin等:(详见http://cnodejs.org/topic/4f4ca8e0940ce2e

node.js学习一——什么是node.js

定义:node.js是运行在服务器端的运用了谷歌v8引擎的javascript运行平台 特点:1. 异步式I/O(非阻塞式I/O) 2. 事件驱动 什么是异步式I/O(非阻塞式I/O)? 要了解什么是异步式I/O(非阻塞式I/O),必须要先了解下什么是I/O,什么阻塞, 什么是同步式I/O(阻塞式I/O). I/O的定义: 线程在执行磁盘读写或者是网络通信时统称为I/O操作. 阻塞定义: 在I/O的过程中由于要耗费的时间比较长,操作系统会剥夺这个线程对CPU的控制权,让线程暂停执行.同时把资源交

系列文章--Node.js学习笔记系列

Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- 简介及安装Node.js开发环境 Nodejs学习笔记(二)--- 事件模块 Nodejs学习笔记(三)--- 模块 Nodejs学习笔记(四)--- 与MySQL交互(felixge/node-mysql) Nodejs学习笔记(五)--- Express安装入门与模版引擎ejs Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识 Nodejs学习笔记(七)--- Node.js + Exp