Javascript node.js fs如何使用相同的函数处理所有错误
我使用express处理http请求,使用fs模块读取html、css、javascript等文件。问题是,如果发生错误,我希望每次将错误记录到控制台时都执行完全相同的操作,控制台将通过管道传输到文件 据我所知,用同一个函数处理所有这些错误并不容易,除非在每个回调中添加类似的内容: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
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”,但最后一种方法也可以。