Node.js 如何从node js的本地上传文件夹中获取视频的持续时间?

Node.js 如何从node js的本地上传文件夹中获取视频的持续时间?,node.js,express,asynchronous,async-await,duration,Node.js,Express,Asynchronous,Async Await,Duration,我想从2个或3个不同的文件夹中获取视频的持续时间。我可以成功地从一个文件夹中获取视频,但由于异步性质,当我使用2或3个文件夹时,它有时会从每个文件夹中获取1或2个视频,有时什么都没有 //获得阅读/技能1 router.get('/skill1/',async(req,res,next)=>{ 试试看{ fs.readdir(“./uploads/skill1/”,异步函数(错误,文件){ //处理错误 如果(错误){ 返回res.status(400).json({success:false,

我想从2个或3个不同的文件夹中获取视频的持续时间。我可以成功地从一个文件夹中获取视频,但由于异步性质,当我使用2或3个文件夹时,它有时会从每个文件夹中获取1或2个视频,有时什么都没有

//获得阅读/技能1 router.get('/skill1/',async(req,res,next)=>{

试试看{
fs.readdir(“./uploads/skill1/”,异步函数(错误,文件){
//处理错误
如果(错误){
返回res.status(400).json({success:false,
msg:`'无法扫描目录:'+${err}`});
}
//console.log(文件)
异步函数funcName(){
持续时间=[]
试一试{
//从本地路径。。。
for(设i=0;i
})

我想多次调用funcName()函数

try {
    fs.readdir('./uploads/skill1/', async function (err, files) {
        //handling error
        if (err) {
            return res.status(400).json({success: false,
                msg: `'Unable to scan directory: ' + ${err}`});
        }
        //console.log(files)
        async function funcName() {
            durations = []
            try {
                // From a local path...
                for (let i = 0; i < files.length; i++) {
                    file = files[i];
                    console.log(file.duration)
                    p = path.join(__dirname + `../../../`)
                    reqPath = path.join(p + `/uploads/skill1/` + `/${file}`)
                    // console.log(reqPath)
                    //From a local path...
                    duration = await getVideoDurationInSeconds(reqPath);
                    obj = {
                        file_name: file,
                        duration: duration
                    }
                    //durations.push(duration)
                    durations.push(obj)
                }
            } catch (error) {
                console.log(`unable to show duration`)
                durations = null
            }

            //console.log(durations)
            return durations
        }

        duration_result = await funcName();


        
        

        try { 
            data = await SkillDetail.findOne({ name: 'skill1'})
            videoData = await videoDetail.find({ category: `skill1` })
            
            }
            res.status(200).json({
            success: true,
                data: files,
                durations: duration_result,
                videoDetail: videoData,
                title: data.title,
                description: data.description,
                price: data.price
            })

        } catch (error) {
            res.status(400).json({ success: false, error: error})
            console.log(error)  
        } 




    });
} catch (error) {
    next(error)
}