【发布时间】:2020-03-09 20:02:24
【问题描述】:
使用 Node.js,我试图在当前目录中搜索特定文件,并在文件名末尾附加一个随机数。在网上搜索后,我发现this package 可能最适合这项工作,但我似乎无法让它发挥作用。
这是我目前所拥有的:
const find = require('find');
function func1() {
const x = find.file(/solution[0-9]*\.json/, __dirname, function(files) {
console.log(files[0]);
return files[0];
});
console.log(x);
}
func1();
这在找到正确的文件并将其打印到控制台方面做得很好,但我仍然无法在 func1 中使用该文件的路径,而这正是我所需要的。这是我得到的结果:
{ error: [Function: error] }
C:\Users\dir1\dir2\solution78029853.json
我尝试了多种“实验性”可能的语法,但似乎都不起作用,这确实是我能得到的最接近的语法。我确实注意到{ error: [Function: error] } 显示在console.log(files[0]); 之前,但我不确定这是否是问题所在,如果是,我不知道如何防止它。没有const x = 和console.log(x); 我没有错误,只显示路径,所以我确定有什么问题;我只是不知道是什么。我已经在网上搜索了一个多小时,但没有任何进展,所以希望有人知道我做错了什么(可能很简单)。
在 Bergur 发表评论后编辑 func1():
function func1() {
const x = find.file(/solution[0-9]*\.json/, __dirname, function(files) {
console.log(files[0]);
return files[0];
})
.error(function(err) {
if (err) {
//
}
});
console.log(x);
}
这不会产生错误,而只是打印 undefined 而不是 console.log(x);。
【问题讨论】:
-
您是否尝试过使用 .error 来查看您遇到了什么错误?:getting:npmjs.com/package/find#errorcallback
-
我是 JavaScript 的新手,这并没有真正的帮助。我不知道该怎么做,所以我用我将问题添加到我的代码中的方式编辑了这个问题......
-
没问题,我们都必须从某个地方开始。只是其中的console.log(err),希望它能给你一些东西。
-
相信你会遇到这个经典:stackoverflow.com/questions/14220321/…
标签: javascript node.js function return