有人能解释一下node.js代码的含义吗?
我正在做这些练习,我有一个爆炸,但我只需要一步一步地解释这段代码中发生了什么有人能解释一下node.js代码的含义吗?,node.js,Node.js,我正在做这些练习,我有一个爆炸,但我只需要一步一步地解释这段代码中发生了什么 var fs = require('fs') var filename = process.argv[2] var buf = fs.readFileSync(filename) var str = buf.toString(); var count = str.split('\n').length console.log(count - 1) 非常感谢 拉入“fs”模块(文件系统功能) 使用args列表中的第三
var fs = require('fs')
var filename = process.argv[2]
var buf = fs.readFileSync(filename)
var str = buf.toString();
var count = str.split('\n').length
console.log(count - 1)
非常感谢 拉入“fs”模块(文件系统功能)
使用args列表中的第三个参数作为路径打开文件
使用fs导入读取文件的内容
将文件内容拆分为一行一行的数组,并获取数组长度(也称为行数)
写入数组长度减去1,这是数组的最后一个索引。如果有标题行,也可以是内容行的数量。var fs=require('fs')
这告诉节点加载名为fs
的“文件系统”包。它用于管理文件系统
var filename = process.argv[2]
var buf = fs.readFileSync(filename)
var str = buf.toString()
filename
变量正在从索引2的参数中读入看起来是文件名的内容。然后,创建一个名为buf
的缓冲区来读取该文件中的数据。然后,创建str
,将该信息转换为字符串
最后,var count=str.split('\n')。length
获取此字符串并按\n
或按行将其拆分为一个数组,并获取此数组的长度。这是现在的行数
console.log(count-1)
只需使用-1
将此数量的行输出到控制台,以消除文件末尾的额外换行符或作者知道的其他一些额外数据。此代码将读取文件并打印行数
var fs = require('fs')
fs是执行文件操作的节点模块。此行将创建一个fs
变量,该变量可以访问fs模块中的所有导出函数。它就像访问所有公共函数的类的对象。它类似于c#include
语句或javaimport
语句
var filename = process.argv[2]
argv
是一个数组,包含在终端/命令提示符处指定的参数列表。所以这一行将从终端读取文件名
var buf = fs.readFileSync(filename)
此行将创建一个变量buf
,并将名为filename
的文件内容保存到其中。内容不会保存为字符串,因此需要在下一行中转换
var str = buf.toString();
默认情况下,buf
有一个方法/函数toString()
原型。此方法返回转换为字符串的变量,因此str
将原始文件的内容作为字符串
var count = str.split('\n').length
默认情况下,str
具有split方法原型。它以delimiter作为参数并返回一个字符串数组。因此str.split('\n')
将返回一个由分隔行组成的数组(由'\n'分隔),然后对该数组调用length
以返回其长度
您可以将其分为以下两个阶段
var lines = str.split('\n')
var count = lines.length
最后,假设存在最后一个空行,则计数将减少1<代码>控制台。日志
将其记录到终端/命令提示符中
console.log(count - 1)
从提供的参数中读取文件路径,打开文件并将其作为字符串读取。数一数文件中的行数。好的,非常感谢!你能告诉我当我运行这个时,为什么每次它都给我一个不同的数字@Justin CWell唯一可能的方法是
filename
变量指向不同的文件。尝试在var filename=process.argv[2]
之后添加console.log(filename)
以查看文件名是什么。它显示为“/var/folders/pf/0x9n5bts7y99kd1rm2c3ry9c000gn/T/learnyounode_52597.tmp”@Justin CIt文件可能正在其他地方写入。如果您想查看文件中的内容,请尝试在str
变量中为str中的每个{console.log}