0

我正在使用 nodejs、ejs、mongoDB、ffmpeg 和 chokidar。它是监听文件夹并添加,删除mongodb。如果我在 5 个文件夹中运行。完成。工作非常好。但我在 1000 文件夹中运行。它不工作。我得到了错误。我试过了。但我没有修复它。

此代码是 mongodb 连接和 craete:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mydb";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  console.log("Database created!");
  db.close();
});

此文件夹读取和数据库代码附加:

var watch1watcher = chokidar.watch('Z:\\watch1\\watch_1\\', {ignored: /^\./, persistent: true});
watch1watcher
  .on('add', function(path) {
    MongoClient.connect(url, function(err, db) {
      if (err) throw err;
      const findway = path.split('\\');
      const datefind = findpath[7]
      const word = '_'
      if(findpath[8].includes(word) ){
        const datefindundu = datefind.split('_')
        const yenidatefind = datefindundu[1]
        const nowdate = yenidatefind.split('.')
        const day = nowdate[0]
        const month = nowdate[1]
        const findclock = findpath[8]
        const finderclock = findclock.split('_')
        const findedclock = finderclock[1].split('.')
        const findclc = findedclock[0]
        const findwo = findclc.split('-')
        const clock = findwo[0]+':'+findwo[1]+':'+findwo[2]
        const nextfind = parseInt(findwo[0]) + 1
        if(nextfind > 23){
          nextclock = '00'+':'+findwo[1]+':'+findwo[2]
        }else if(nextfind<10){
          nextclock = '0'+nextfind +':'+findwo[1]+':'+findwo[2]
        }else if(nextfind>9){
          nextclock = nextfind +':'+findwo[1]+':'+findwo[2]
        }

          // Video Thumbnail
          const resimadi = findway[8].split('.');
          ffmpeg({ source: path })
          .on('filenames', (filenames) => {
              console.log('Created file names', filenames);
          })
          .on('end', () => {
              console.log('Job done');
          })
          .on('error', (err) => {
              console.log('Error', err);
          })
          .takeScreenshots({
              size: '500x250',
              filename: day+month+findway[5]+resimadi[0],
              timemarks: [ 2 ]
          }, 'public/images/thumbnail');
          vthumnail = day+month+findway[5]+resimadi[0]+'.png'

           var myobj = { channel_name: findway[4], year: findway[5], month: month, day : dmonth, start_time : clock, end_time : nextclock, videoPath : path , vthumbnail : vthumnail  };
            console.log(myobj)
        }
     
      var dbo = db.db("mydb");
      dbo.collection("watch1").insertOne(myobj, function(err, res) {
        if (err) throw err;
        console.log("1 document inserted");
        db.close();
      });
    });

这是错误信息:

> MongoNetworkError: failed to connect to server [localhost:27017] on
> first connect [MongoNetworkTimeoutError: connection timed out

代码适用于小文件夹结构,但代码不适用于更多文件夹结构。我尝试了更多方法,但没有找到更多文件夹结构的工作代码。

4

0 回答 0