私はこれを試していますWindowsのVisual Studioコードpowershell.exeをターミナルとして使用しています。learnyounode:#3私の最初のI/O
多くの失敗の後、私は解決策を見つけるためにインターネットでピークに達しました。
ここで私は、インターネットから持っているソリューションです:
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の最初の2つのモジュールを何も失敗せずにクリアしました。
私がこのようなものを使ったとしても: '> node myFirstIO.js" Hello World "' それでも、同じエラーが表示されました。 – aps120797
コードの観点からは、3番目の引数はファイル名でなければなりません。これは、フォルダからの相対パスでも、絶対パスでもかまいません。 * path * + * file.extension *である必要があります。 言って、もしあなたのコードだけでこの行: '' 'はconsole.log(process.argv [2])' '' この '' '>ノードmyFirstIO.js "Hello World" の' ''はうまくいくはずですが、あなたがFSモジュールを使っているので、引数として渡されたファイルのパスが必要です。 –