【发布时间】:2017-09-17 08:12:05
【问题描述】:
我是node.js 的新手,正在尝试弄清楚如何编写模块并在另一个文件中使用它。
这是我写的根据文件扩展名列出文件的模块。
输入:文件的目录和扩展名。
模块: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);
})
});
当我通过这个 command 在控制台上运行它时:node module.js \dir\path\to\files .ext
我在控制台上没有得到任何输出。
谁能告诉我代码有什么问题?
谢谢!
【问题讨论】:
-
尝试添加
console.log(process.argv)以帮助确定 node.js 进程在您传递命令行参数时实际接收的内容。 Bash 和 CMD 执行序列化步骤,有时会导致您最终收到的值出现意外行为,因此请确保您正确转义了反斜杠等特殊字符。 -
成功了。这只是空格的问题。从一个小时开始,我一直在努力。谢谢!
-
最好的办法是使用调试来找出问题所在:使用
--inspect-brk选项启动脚本:node --inspect-brk yourscriptjs,然后在 Chrome 中转到chrome://inspect并从中选择脚本名单。您现在可以单步执行代码、检查变量等。(您需要一个相当新的 Node 版本。V8.x 有,V6.x 没有。) -
@T.J.Crowder 这真的很酷!不知道,有时间我去试试
标签: javascript node.js