最佳实践 - 节点JS错误处理+后备

时间:2017-03-01 15:41:35

标签: javascript node.js

我有一个场景,我在移动设备上有来自用户的图像和一些附带的数据。我正在使用Amazon Web Services,其想法是将图像存储在S3中,将数据存储到数据库表中。

我正在使用Node JS处理这些数据。

要将图像存储到S3,我使用的是AWS SDK。 要将记录存储到MySQL中,我使用的是'mysql'NPM包。

问题

确保两个事件顺利进行的最佳实践方法是什么,如果没有,请确保没有事件发生。所以让我们假设S3 putObject已经完成并且没有错误,但是MySQL插入超时了。

解决方案

我能想出很多 - 而且过去也做过。这里真正的问题是我认为最佳实践,在研究堆栈溢出后,我似乎无法找到问题的好方案或最佳实践答案:

“当单个函数涉及两个或更多(可能容易出错)的远程依赖项时,处理错误的最佳方法是什么?”

我只是想知道是否有人对此有答案?

全部谢谢

1 个答案:

答案 0 :(得分:0)

好问题,最佳做法是使用异步触发。这只是意味着,不执行此操作,或直到事件触发器授予此类操作。在节点领域中,使用事件包的事件流是一种方法。只需手动创建一个事件,然后听取一定的响应,然后相应地触发,这只能确保你想要执行的内容。最好的方法是使用promisies的概念,Promises为执行,编写提供了一个更简单的选择,与传统的基于回调的方法相比,可以管理异步操作。它们还允许您使用与同步try / catch类似的方法处理异步错误。 尝试将bluebird用于节点。https://alexperry.io/node/2015/03/25/promises-in-node.html