我如何专业使用node.js

拍摄者Caspar Camille RubinUnplash

使用合适的工具来工作。但是,当我们找到可以通过多种不同方式有效使用的工具时,这真是太棒了。

我使用节点为客户开发解决方案。这些解决方案可能只是API,或者在REST接口上与前端框架集成。但是这些解决方案有时涉及设置WebSocket服务器,命令行脚本,一次性数据操纵任务,创建或访问作业队列,甚至是以模块化方式完成所有操作的综合软件包。

这是我分解任务的方式

  • 数据访问。我用knex.js为了创建我的数据模型当我处理关系数据库时。对于非关系数据库,我将使用适当的库。无论哪种方式,我都将对数据存储的访问访问到可以独立于应用程序的有意义的数据对象中。这使我可以从批处理文件或其他应用程序中调用我的数据项。
  • 商业逻辑。我喜欢将应用程序逻辑分离为单独的层,尤其是对于非平凡应用程序。将我们想做的事情与要求如何发生以及如何存储数据是很方便的。我发现这种分离使我更加灵活地响应应用程序不断发展的需求,而不会陷入通信方法中。它还使将应用程序分解为较小的模块。
  • 蜜蜂。我使用Express.js在需要时快速构建访问点。这些访问点的设计非常轻。我更喜欢从请求中提取所需的信息,然后调用特定于解决方案的逻辑层以进行任何数据处理或检索。该逻辑层依次调用与数据库交互的数据对象,以存储/检索持久存储的数据。我将在有意义的地方创建休息终点,但是我还将为更复杂的请求创建端点。
  • Websocket。当有道理时,我会使用WS模块创建套接字服务器。我可能会设置Express-WS还要创建HTTP/HTTPS端点以访问套接字服务器。如果可能,我尝试使用API​​调用的相同业务逻辑对象。
  • 报告。我将数据的介绍留给专用系统,例如Tableau或图表工具。我使用节点为这些系统准备数据。
  • 文件管理。有时候,我们只需要移动文件,删除文件或读取内容即可。我用本地人FS模块或FS-Extra执行这些步骤的模块。我用通过2当我使用流来处理大型数据集并需要将结构化数据输送到另一个步骤时。我也会使用快速CSV使用CSV文件。
  • 前 - 部署处理。实际上,这通常在运行webpack,,,,包裹,或另一个针对代码的捆绑系统。有时,尽管部署了下一组代码时,要做的准备工作要做 - 应用数据库结构更改,修改任何动态模板,收集文件等。在这些情况下,我编写了一个脚本,该脚本可以执行Bundler System可以使用的任何其他步骤’t handle. In essence it is batch processing.
  • 计划任务。我创建执行特定任务的JS文件。这可能是清除过时的日志,处理作业队列,从乐队中进行批量电子邮件,等等。我以单个意图编写每个脚本,然后使用Cron以合理的间隔来调用该脚本。这些任务通常是在网页中无法很好地发挥作用的更为严格的内容。或者是房屋保留琐事,以使应用程序以快速的速度保持嗡嗡声。
  • 批量处理。我经常创建了一个接口,以便于捕获数据。然后,管理层希望进行批量进入,但不想在应用程序接口中公开批量输入过程。这可以使用多年的数据,所有产品,或一次更新100秒或用户记录来预先填充应用程序。这些任务可能是一次性的事情,或者可以定期重复出现。无论哪种方式,要完成的工作几乎相同。阅读源数据,以某种方式按摩,然后对该数据进行操作。
  • 命令行脚本。类似于批处理处理,但批处理脚本的使用模式较窄。命令行脚本可以在参数中进行定义源数据所在的位置,输出的所需位置以及其他设置以调整处理方式。我用纱线或者极简主义处理解析命令行参数。从那里开始,就像批处理处理一样。

对于一次性脚本,我只是将其称为节点路径/to/my_script.js。对于重复执行的任务,尽管我将脚本属性添加到package.json文件中,以便我可以执行命令NPM运行mytask类型语句。

您是否以不同的方式使用node.js?如果是这样,请发表评论,让我知道。很高兴听到我可以探索的其他方法。

每天新的JavaScript和Web开发内容。关注加入3M+每月读者。

获取中型应用betway娱乐官网

一个说“在应用商店上下载”的按钮,如果单击,它将带您到iOS App Store
一个说“获取它,Google Play”的按钮,如果单击它,它将带您到Google Play商店
Baidu