【发布时间】:2013-12-13 16:48:51
【问题描述】:
我正在编写一个 learnunode 教程,但遇到了一个问题,所以我需要你的帮助,因为该软件没有提供足够详细的答案。
我正在进行“使其模块化”的步骤,该步骤要求将代码分成模块。我的模块是:
module.exports = function (dir, filter, err){
var fs = require("fs");
var re = new RegExp('\\.' + filter + '$');
fs.readdir(dir, function(err, list) {
if (err) return callback(err);
for (var i=0; i < list.length; i++) {
var name = list[i];
if(name.match(re))
console.log(list[i]);
};
});
}
但教程说消息不正确:
您的附加模块文件:/home/user/learnunode/submodule.js 确实 似乎没有回传从
fs.readdir()收到的错误在回调中使用以下惯用的 Node.js 模式
fs.readdir(): if (err) return callback(err)失败
但我正在使用这些行。我做错了什么?
编辑: 调用模块是这样的: var mod = require('./submodule');
var mod = require('./submodule');
var folder = process.argv[2];
var extension = process.argv[3];
mod(folder, extension);
也许我应该发现错误或将其声明并传递给模组?
【问题讨论】:
-
戴着我猜的帽子,但是在这种情况下,return 语句末尾的分号会有所帮助吗?
-
通常,如果您不使用花括号来构建代码,则将
return与if放在同一行。也许就是这样。 -
感谢您的回答,但这些都没有改变结果。我会用新代码更新我的问题。
-
@GruffBunny 看似鲜为人知的事实,Javascript 不需要
;来终止一行。 stackoverflow.com/questions/4002234/… -
@JustinWood 该建议更针对解析 js 以提供错误消息的任何内容。不过,最好添加分号,否则插入分号可能会导致意外行为。
标签: javascript node.js