面试题答案
一键面试可读流添加错误监听事件
在Node.js中,为可读流添加错误监听事件可以使用'error'
事件。示例代码如下:
const fs = require('fs');
const readableStream = fs.createReadStream('nonexistentfile.txt');
readableStream.on('error', (err) => {
console.error('可读流发生错误:', err.message);
});
可写流添加错误监听事件
为可写流添加错误监听事件同样使用'error'
事件。示例代码如下:
const fs = require('fs');
const writableStream = fs.createWriteStream('example.txt');
writableStream.on('error', (err) => {
console.error('可写流发生错误:', err.message);
});
错误处理函数一般操作
- 记录错误信息:使用日志记录工具,如
console.error
或专业的日志库(如winston
)记录错误的详细信息,包括错误消息、堆栈跟踪等,方便调试和排查问题。 - 清理资源:如果流操作涉及到打开文件、连接数据库等资源,在错误发生时要确保这些资源被正确关闭或释放,避免资源泄漏。例如,对于文件流,可以调用
stream.destroy()
方法关闭流。 - 通知用户:根据应用场景,向用户发送合适的错误提示,告知用户发生了错误,但要避免暴露敏感的内部错误信息,以保障系统安全。
- 尝试恢复:在某些情况下,可以尝试重新执行流操作。比如,网络故障导致的流错误,可以在适当延迟后重试连接和数据传输。