作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 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/
我是一名优秀的程序员,十分优秀!