Javascript node.js fs如何使用相同的函数处理所有错误

Javascript node.js fs如何使用相同的函数处理所有错误,javascript,node.js,error-handling,fs,Javascript,Node.js,Error Handling,Fs,我使用express处理http请求,使用fs模块读取html、css、javascript等文件。问题是,如果发生错误,我希望每次将错误记录到控制台时都执行完全相同的操作,控制台将通过管道传输到文件 据我所知,用同一个函数处理所有这些错误并不容易,除非在每个回调中添加类似的内容: const callback = doStuffFn => (err, data) => err ? handleError(err) : doStuffFn(data); fs.readFile

我使用express处理http请求,使用fs模块读取html、css、javascript等文件。问题是,如果发生错误,我希望每次将错误记录到控制台时都执行完全相同的操作,控制台将通过管道传输到文件

据我所知,用同一个函数处理所有这些错误并不容易,除非在每个回调中添加类似的内容:

const callback = doStuffFn => (err, data) =>
  err ? handleError(err) : doStuffFn(data);


fs.readFile('index.html', callback(doStuff));
fs.readFile('style.css', callback(doStuff));
犯错误手柄错误:doStuff 有什么好办法可以做到这一点吗


如果没有,是否有其他选择同步不是一个选项,或者以上是最佳方式

您有几个抽象选项。第一个选项与您概述的类似:

fs.readFile('index.html', (err, data) => {
  err ? handleError(err) : doStuff(data)
});

fs.readFile('style.css', (err, data) => {
  err ? handleError(err) : doStuff(data)
});
下一个选项是为回调创建不同的帮助器方法:

const callback = doStuffFn => (err, data) =>
  err ? handleError(err) : doStuffFn(data);


fs.readFile('index.html', callback(doStuff));
fs.readFile('style.css', callback(doStuff));

最后,可以考虑用辅助方法包装整个RealFrm方法:

const loadFile = (file) =>
  fs.readFile(file, (err, data) =>
    err ? handleError(err) : doStuffFn(data)
  );


loadFile("index.html")
loadFile("style.css")

您需要使用fs来服务器文件吗?Express有一种服务静态资产的方法:@skovy谢谢你让我知道,我以后可能会使用它,但是我仍然希望在我的主页上使用这种一般错误处理。你使用的是什么fs方法?@skovy只是fs.readFileThank,我在寻找类似process的东西。关于“uncaughtException”,但最后一种方法也可以。