Node.js 如何从node js的本地上传文件夹中获取视频的持续时间?
我想从2个或3个不同的文件夹中获取视频的持续时间。我可以成功地从一个文件夹中获取视频,但由于异步性质,当我使用2或3个文件夹时,它有时会从每个文件夹中获取1或2个视频,有时什么都没有 //获得阅读/技能1 router.get('/skill1/',async(req,res,next)=>{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,
试试看{
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)
}