【问题标题】:Error: connect ENFILE 127.0.0.1:5984 - Local (undefined:undefined)错误:连接 ENFILE 127.0.0.1:5984 - 本地(未定义:未定义)
【发布时间】:2016-02-12 03:48:09
【问题描述】:

我不断收到这个 pouchDB 错误,我不知道这是怎么回事。

Error: connect ENFILE 127.0.0.1:5984 - Local (undefined:undefined)
    at onError (/Users/thomas/Desktop/rain/node_modules/pouchdb/lib/deps/ajax/ajaxCore.js:53:18)
    at Request._callback (/Users/thomas/Desktop/rain/node_modules/pouchdb/lib/deps/ajax/ajaxCore.js:103:14)
    at self.callback (/Users/thomas/Desktop/rain/node_modules/request/request.js:198:22)
    at emitOne (events.js:77:13)
    at Request.emit (events.js:169:7)
    at Request.onRequestError (/Users/thomas/Desktop/rain/node_modules/request/request.js:867:8)
    at emitOne (events.js:77:13)
    at ClientRequest.emit (events.js:169:7)
    at Socket.socketErrorListener (_http_client.js:265:9)
    at emitOne (events.js:77:13)
    at Socket.emit (events.js:169:7)
    at emitErrorNT (net.js:1253:8)
    at doNTCallback2 (node.js:450:9)
    at process._tickCallback (node.js:364:17)

【问题讨论】:

    标签: javascript node.js couchdb pouchdb


    【解决方案1】:

    ENFILE 整个系统中有太多不同的文件打开。请注意,任何数量的链接频道都算作一个文件打开;请参阅链接频道。在 GNU/Hurd 系统上永远不会发生此错误。

    使用这个promiseDebouncer,我封装了put 调用并限制了它。

    function promiseDebounce(fn, delay, count) {
      var working = 0, queue = [];
      function work() {
        if ((queue.length === 0) || (working === count)) return;
        working++;
        Promise.delay(delay).tap(function () { working--; }).then(work);
        var next = queue.shift();
        next[2](fn.apply(next[0], next[1]));
      }
      return function debounced() {
        var args = arguments;
        return new Promise(function(resolve){
          queue.push([this, args, resolve]);
          if (working < count) work();
        }.bind(this));
      }
    }
    
    let debouncePut = promiseDebounce(db.put, 1000, 100).bind(db)
    

    【讨论】:

      猜你喜欢
      • 2015-02-04
      • 1970-01-01
      • 2018-11-13
      • 1970-01-01
      • 1970-01-01
      • 2019-03-11
      • 2017-05-20
      • 1970-01-01
      • 2014-02-17
      相关资源
      最近更新 更多