这一章教会做了第一个node应用:一个简单的命令行浏览器,功能是允许用户读取文件。
它是逐步逐步教着做的所以不会很难,具体代码看github吧,这里我就记录一下学到的东西。
github CLI
首先是获取文件目录这一块, __dirname
是用来获取执行文件时该文件在文件系统中所在的目录。
而 process.cwd()
是用来获取当前工作目录的,区别就是,前者是用来获取文件的绝对目录的,无论是否执行它。而后者呢,就是运行node的工作目录啦。
然后是argv,其实就是node 文件后带的参数,比较特殊的是它自带了两个参数,一个事node,一个是执行文件的路径,所以要获得参数的话得先解决这两个 console.log(process.argv.slice(2))
process.env
查看环境变量
process.exit(1)
退出程序。
fs.stat
是用来给出文件或者目录的元数据,callbac会返回一个stat对象,就是给定目录下的文件信息。
可以用 fs.watchFile
来监视文件是否发生变化,对单个。
可以用 fs.watch
来监视整个目录,监视意味着当文件系统中的文件(或者目录)发生变化时,会分发一个事件,然后触发指定的回调函数。
还有一个重要的特点, Stream
继承自 EventEmitter
。
当涉及持续不断地对数据进行读写时,流就出现了。
做这个玩意的时候呢,经常去查node的API,对fs模块有了更深入的了解啦~~。
这一章除了介绍TCP外,就是用Node做一个聊天程序啦~~
比较特殊的是书上只给出了用telnet来做客户端的程序,等我自己这两天写个客户端做联系吧。
老样子代码看github,这里记录学习。
可能是windows的telnet比较特殊还是怎样,因为在telnet上输入一个字符就直接发送到server上了。。这样当然不好啊。。书上的代码就是这样的。。然后为了解决我自己hack了一下。。用换行做一句消息的结束。
当底层套接字关闭时,Node.js会触发close事件。
可以直接对一个流设置编码。
这一小节书上教的不多。更多在于动手去体会,然后查api。敲代码学到的我都做在注释上啦。
github nodechat