2017-04-20 50 views
0

我有一个小型应用程序,它使用node-watch观察2个网络驱动器并在发生更改时在它们之间移动文件。但网络经常出现故障,我该如何防止ECONNRESET崩溃?网络驱动器上的node-watch ECONNRESET

代码:

watch(directories.SQL_XML_IN, { 
    recursive: false, 
    filter: function (name) { 
     return /\.xml$/i.test(name); 
    } 
}, function (evt, name) { 
    if (evt == 'update') { 
     // move files 
    } 
}); 

和错误:

events.js:141 
    throw er; // Unhandled 'error' event 
^

Error: watch null ECONNRESET 
at exports._errnoException (util.js:870:11) 
at FSEvent.FSWatcher._handle.onchange (fs.js:1217:21) 
+0

节点工艺的一般策略是让他们失败和死亡,使用进程管理器重新启动它们。像nodemon,永远,或pm2 – chris

+0

所以没有好的错误处理呢?听起来不太好,因为这在企业生产环境中使用 –

回答

0

尝试是这样的:

var watcher = watch('...'); 

watcher.on('error', function(err) { 
    // handle errors 

    // close it if necessary 
    watcher.close() 
}); 
+0

请解释您的代码以及为什么它可以回答这个问题 – Clijsters