gpt4 book ai didi

javascript - 学习你 Node : #3 My First I/O

转载 作者:行者123 更新时间:2023-12-03 04:43:52 26 4
gpt4 key购买 nike

我正在 Windows 10 上的 Visual Studio Code 中尝试使用 powershell.exe 作为终端。

经过多次失败后,我在互联网上找到了解决方案。

这是我从互联网上得到的解决方案:

var fs = require('fs');
      
var contents = fs.readFileSync(process.argv[2]);
var lines = contents.toString().split('\n').length - 1;
console.log(lines);

我将其保存在文件 myFirstIO.js 中。但是,我尝试在 PowerShell 上运行它,收到以下错误:

PS C:\Users\aps12\Desktop\Test\lyn> node myFirstIO.js
fs.js:640
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^

TypeError: path must be a string or Buffer
at TypeError (native)
at Object.fs.openSync (fs.js:640:18)
at Object.fs.readFileSync (fs.js:508:33)
at Object.<anonymous> (C:\Users\aps12\Desktop\Test\lyn\myFirstIO.js:3:19)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)

但是当输入时,

PS C:\Users\aps12\Desktop\Test\lyn> learnyounode verify myFirstIO.js

令人惊讶的是,解决方案获得了通过。

 # PASS Your solution to MY FIRST I/O! passed!

我想知道为什么解决方案即使没有运行也能通过。另外,为什么解决方案没有运行?我在那里犯了什么错误?PS:我已经通关了learnyounode的前两个模块,没有任何失败。

最佳答案

如果您使用 node myFirstIO.js 运行此程序,它将引发错误,因为它需要一个文件作为第二个参数

/*
on this line, file being read using readFileSync and saving it to a
contents variable
*/
var contents = fs.readFileSync(process.argv[2]);

如果您注意到错误TypeError:路径必须是字符串或缓冲区,则它需要文件路径字符串或文件流作为第二个参数。

当您使用 learnyounode 运行此程序时,它们会使用文件隐式运行它,您也可以通过运行它来测试它,例如 node myFirstIO.js textfile.txt注意,文件路径必须有效。

如果您像 node myFirstIO.js "Hello World" 一样运行此程序,它将无法工作,因为它需要文件路径或流而不是字符串。希望这可以帮助您理解这个问题。

关于javascript - 学习你 Node : #3 My First I/O,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42955382/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com