私はnode.js
に新しく、モジュールの書き込み方法を理解して別のファイルで使用しようとしています。モジュールIO in nodejs
これは、ファイルの拡張子に従ってファイルをリストするために書いたモジュールです。
入力:ファイルのディレクトリと拡張子。
モジュール:module_import.js
var fs = require('fs')
var path = require('path')
module.exports = function (dir, filterStr, callback) {
fs.readdir(dir, function (err, list) {
if (err) {
return callback(err)
}
list = list.filter(function (file) {
return path.extname(file) === '.' + filterStr
})
callback(null, list)
})
}
module.js
(module_import.js
がインポートされたファイル。)私は、このコマンドにより、コンソール上でそれを実行
var filterfile = require('./module_import.js');
var dir = process.argv[2];
var ext = process.argv[3];
filterfile(dir,ext,function(err,list){
if(err){
return console.log(err);
}
list.forEach(function(file){
console.log(file);
})
});
:node module.js \dir\path\to\files .ext
コンソールに何も出力されません。
コードに何が間違っているか教えていただけますか?
ありがとうございます!
コマンドライン引数を渡すときにnode.jsプロセスが実際に受け取っていることを理解するために 'console.log(process.argv)'を追加してみてください。 BashとCMDはシリアル化の一歩を踏み出します。これは、受信した値に予期しない動作を引き起こすことがあるため、バックスラッシュのような特殊文字を正しくエスケープしていることを確認してください。 –
それは働いた。それは空白だけの問題でした。私は1時間かかって頭を切っていた。ありがとう! – Anamika
あなたの最善の策は、問題を見つけるためにデバッグを使うことです: '--inspect-brk'オプションでスクリプトを起動します:' node --inspect-brk yourscriptjs'、次にChromeで 'chrome:// inspect'を実行し、リストからスクリプトを選択します。あなたはコードを一歩一歩踏み出すことができ、変数などを調べることができます。(V8.xにはそれがありますが、V6.xはありません) –