如何解决如何从节点 js 的本地上传文件夹中获取视频的持续时间?
我想从 2 或 3 个不同文件夹中获取视频的时长。我可以成功地从一个文件夹中获取视频,但是当我使用 2 或 3 个文件夹时,由于异步性质,它有时会从每个文件夹中获取 1 或 2 个视频,有时什么也没有。
// 获取读/技能1 router.get('/skill1/',async (req,res,next) => {
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)
}
})
我想多次调用 funcName() 函数
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。