Ich versuche dies in Visual Studio-Code unter Windows 10 mit powershell.exe als Terminal.learnyounode: # 3 Meine erste I/O
Nach vielen Misserfolgen erreichte ich den Höhepunkt im Internet, um seine Lösung zu finden.
Hier ist die Lösung, die ich aus dem Internet bekommen haben:
var fs = require('fs');
var contents = fs.readFileSync(process.argv[2]);
var lines = contents.toString().split('\n').length - 1;
console.log(lines);
ich es in einer Datei gespeichert, myFirstIO.js. Allerdings habe ich versucht, es auf Powershell ausgeführt erhielt ich folgende Fehlermeldung:
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)
Aber wenn getippt,
PS C:\Users\aps12\Desktop\Test\lyn> learnyounode verify myFirstIO.js
Überraschenderweise Lösung wurde übergeben.
# PASS Your solution to MY FIRST I/O! passed!
Ich frage mich, warum die Lösung auch dann bestanden wird, wenn sie nicht lief. Warum wurde die Lösung nicht ausgeführt? Was ist der Fehler, den ich dort gemacht habe? PS: Ich habe bereits die ersten beiden Module learnyounode ohne jeden Fehler gelöscht.
Auch wenn ich so etwas verwendet: '> Knoten myFirstIO.js" Hallo Welt "' Es zeigte immer noch den gleichen Fehler. – aps120797
Aus der Sicht Ihres Codes muss das dritte Argument ein Dateiname sein. Es könnte ein relativer Pfad vom Ordner oder ein absoluter Pfad sein. Es muss * path * + * file.extension * sein. Sag mal, wenn Ihr Code nur diese Zeile: '' 'console.log (process.argv [2])' '' diese '' '> node myFirstIO.js "Hallo Welt"' '' sollte funktionieren, aber da Sie mit dem FS-Modul arbeiten, erfordert es den Pfad einer Datei als Argument übergeben. –