node.js - node读取文档行数Sync可以readFile不行

查看:93
本文介绍了node.js - node读取文档行数Sync可以readFile不行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

如果用readFileSync这样写

var fs = require('fs');
var num = fs.readFileSync(process.argv[2]).toString();
var arr = num.split('\n');
console.log(arr.length);

则可以成功读取文件行数

但是如果用readFile异步写

var fs = require('fs');
var arr ;
var num = fs.readFile(process.argv[2], function callback(ree, data) {
    arr = data.split('\n').toString();
});
console.log(arr);

则会提示

请问哪里错了呢?

解决方案

代码有两处错误,其一是应该 data.toString().split('\n'),你对比下上面的,顺序错了,因为 data 是个 buffer,要先转为 string 才能 split;其二是 console.log(arr) 的位置错了,因为方法异步,所以应该写在回调里。

var arr ;
var num = fs.readFile('test.txt', function(ree, data) {
    arr = data.toString().split('\n');
    console.log(arr.length);
});

这篇关于node.js - node读取文档行数Sync可以readFile不行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆