我现在正在从nodeschool.io学习NodeJS,第三个练习是关于I / O文件。
它要求我使用单个同步文件系统操作来编写程序,以读取文件并在控制台(stdout)中打印换行符数。要读取的文件的完整路径将作为第一个命令行参数(即process.argv [2])提供。
此练习的答案与我的答案相似,所以我真的知道我哪里做错了。这是我的解决方案:
var fs = require('fs');
var contents = fs.readFileSync(process.argv[2]);
var strs = contents.toString();
var lines = strs.split('/n').length - 1;
console.log(lines);
但是我得到一个错误:
TypeError: path must be a string or Buffer
at Object.fs.openSync (fs.js:660:18)
at Object.fs.readFileSync (fs.js:565:33)
at Object.<anonymous> (D:\projects\dmt-node-study\first-io.js:3:19)
at Module._compile (internal/modules/cjs/loader.js:654:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
at Module.load (internal/modules/cjs/loader.js:566:32)
at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
at Function.Module._load (internal/modules/cjs/loader.js:498:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:695:10)
at startup (internal/bootstrap/node.js:201:19)
答案 0 :(得分:0)
app.js
var fs = require('fs');
var contents = fs.readFileSync(process.argv[2]);
var strs = contents.toString();
var lines = strs.split('\n').length - 1;
console.log(lines);
从命令行运行代码
>node app test.txt
正在考虑的文本文件位于项目的根目录中。