玩转Node.js - 04. 第一个异步 I/O!

Posted PhiloChou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了玩转Node.js - 04. 第一个异步 I/O!相关的知识,希望对你有一定的参考价值。

准备工作:
1. 来到我们的工作目录$ cd ~/nodejs
2. 如果还没有工作目录,请按下面方式新增

$ cd ~
$ mkdir nodejs
$ cd nodejs

目标:异步输出文件内容的行数

这次我们仍然会使用fs这个Node核心模块,只是会使用”Node.js 风格”的方式解决:异步。

下面开始实际操作:

1. 新建文件node04.js

$ vim node04.js

2. 使用require方法引入fs模块

var fs = require('fs');

3. 申明变量file保存文件路径

var file = process.argv[2];

4. 使用fs.readFile异步读取内容,并计算行数

fs.readFile(file, function (err, contents) 
    var lines = contents.toString().split('\\n').length - 1;
    console.log(lines);
);

保存退出。

其中function(err, contents)...就是readFile的回调函数,当fs读取完文件后,fs.readFile内部会调用这个方法,我们通过contents即可获取到文件内容。

5. 运行,请替换下面的”<文件名>”为您自己的

node node04.js <文件名>

结果会输出文件内容的行数


本篇代码

文件:~/nodejs/node04.js

var fs = require('fs');
var file = process.argv[2];

fs.readFile(file, function (err, contents) 
    var lines = contents.toString().split('\\n').length - 1;
    console.log(lines);
);

参考资料:
File System Node.js v0.12.7 Manual & Documentation
learnyounode - MY FIRST ASYNC I/O!

以上是关于玩转Node.js - 04. 第一个异步 I/O!的主要内容,如果未能解决你的问题,请参考以下文章

关于node.js内部异步I/O机制的困惑

Node.js中的异步I/O是如何进行的?

node.js的异步编程

为啥在 Node.js 中阻塞文件 I/O 时异步性能更差?

JavaScript 中的事件循环和 Node.js 中的异步非阻塞 I/O 有啥区别?

node.js的异步I/O事件驱动单线程