Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有人能解释一下node.js代码的含义吗?_Node.js - Fatal编程技术网

有人能解释一下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
语句或java
import
语句

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}