Javascript 计算node.js中具有特定扩展名的目录中的文件数
在给定的任务中,我需要使用promise计算扩展名为“.js”、““.txt”的文件以及其他剩余的扩展名Javascript 计算node.js中具有特定扩展名的目录中的文件数,javascript,node.js,es6-promise,readdir,Javascript,Node.js,Es6 Promise,Readdir,在给定的任务中,我需要使用promise计算扩展名为“.js”、““.txt”的文件以及其他剩余的扩展名 const fs = require("fs"); const path = require("path"); function fun(pathTodirectory) { return new Promise(resolve => { fs.readdir(pathTodirectory, (error, files) =>
const fs = require("fs");
const path = require("path");
function fun(pathTodirectory) {
return new Promise(resolve => {
fs.readdir(pathTodirectory, (error, files) => {
if (error) {
reject("Error occured");
}
else {
var obj = {
countJs: function () {
var count = 0;
for (var i = 0; i < files.length; i++) {
if (path.extname(files[i]) === ".js") {
count++;
}
}
return count;
},
countTxt: function () {
var count = 0;
for (var i = 0; i < files.length; i++) {
if (path.extname(files[i]) === ".txt") {
count++;
}
}
return count;
},
count: function () {
var count = 0;
for (var i = 0; i < files.length; i++) {
if (path.extname(files[i]) !== ".js" && path.extname(files[i] !== ".txt")) {
count++;
}
}
return count;
},
files: files //will print list of all files in form of array.
}
resolve(obj);
}
});
});
}
//then part for promise.
const fs=require(“fs”);
常量路径=要求(“路径”);
function fun(路径目录){
返回新承诺(解决=>{
fs.readdir(路径目录,(错误,文件)=>{
如果(错误){
拒绝(“发生错误”);
}
否则{
var obj={
countJs:function(){
var计数=0;
对于(var i=0;i
这是到目前为止我的代码,我在代码中遇到了问题。
count
部分在控制台中不工作并给出断言错误。我只需要以对象的形式进行解析。如何有效地执行此操作?您从未在函数中的任何位置定义路径。除非您在其他地方定义它,否则将导致错误。在fs.readdir
回调中的第一个参数是错误而不是文件列表@ponury kostek我在这里更正了它。排除承诺中的then
部分意味着您永远不会在任何地方使用obj
,也不会调用count
方法,因此不清楚断言错误是如何从该部分产生的?还有,确切的错误消息是什么?@Bergi我已经在我的原始代码中包含了它。在这里,由于代码太长,我排除了它。