gpt4 book ai didi

javascript - Node.js:使用 path.basename 时,目录没有方法 'basename'

转载 作者:太空宇宙 更新时间:2023-11-04 02:49:48 26 4
gpt4 key购买 nike

我有一个文件数组,我试图仅获取文件的基本名称,而不包含长扩展名。下面是数组的示例:

[ 
'/public/uploads/contentitems/.DS_Store',
'/public/uploads/contentitems/063012A5-60BC-4A4C-AEC2-56B0D5D99EF0/063012A5-60BC-4A4C-AEC2-56B0D5D99EF0.png',
'/public/uploads/contentitems/063012A5-60BC-4A4C-AEC2-56B0D5D99EF0/063012A5-60BC-4A4C-AEC2-56B0D5D99EF0_1.png',
'/public/uploads/contentitems/2A431412-A776-4D11-841A-B640DF37C9E2/2A431412-A776-4D11-841A-B640DF37C9E2_2.png'
]

我想要得到:

[ 
'.DS_Store',
'063012A5-60BC-4A4C-AEC2-56B0D5D99EF0/063012A5-60BC-4A4C-AEC2-56B0D5D99EF0.png',
'063012A5-60BC-4A4C-AEC2-56B0D5D99EF0/063012A5-60BC-4A4C-AEC2-56B0D5D99EF0_1.png',
'2A431412-A776-4D11-841A-B640DF37C9E2/2A431412-A776-4D11-841A-B640DF37C9E2_2.png'
]

根据文档,path.basename 函数应该返回不带路径的文件。

但是我得到的是以下错误:

TypeError: Object /public/uploads/contentitems has no method 'basename'

这是我现在使用的代码:

    var walk = function(dir, done) {
var results = [];
fs.readdir(dir, function(err, list) {
if (err) return done(err);
var pending = list.length;
if (!pending) return done(null, results);
list.forEach(function(file) {
file = dir + '/' + file;
fs.stat(file, function(err, stat) {
if (stat && stat.isDirectory()) {
walk(file, function(err, res) {
results = results.concat(res);
if (!--pending) done(null, results);
});
} else {
var suffix = getSuffix(file);
if (!verObj[suffix]) results.push(file);
if (!--pending) done(null, results);
}
});
});
});
};

walk(path, function(err, results) {
if (err) throw err;
results.forEach(function(file) {
console.log(path.basename(file));
});
self.respond({files: results}, {format: 'json'});
});

我也在文件顶部使用 path = require('path');

最佳答案

您的变量名称与路径有冲突。

使用 path 以外的其他内容来表示您要遍历的目录。

walk(path, function(err, results) {

您正在将名为 path 的字符串传递给 walk()

console.log(path.basename(file));  // <-- path is a string here

关于javascript - Node.js:使用 path.basename 时,目录没有方法 'basename',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20690096/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com