如何专业地使用Node.js
它切片!它骰子了!可是等等!还有更多!
使用正确的工具进行作业。但是当我们找到一种可以以许多不同的方式有效使用的工具时真棒。
我使用节点为我的客户开发解决方案。这些解决方案可以是API,或者通过REST接口与前端框架集成。但这些解决方案有时涉及设置WebSocket服务器,命令行脚本,一次性数据操作任务,创建或访问作业队列,甚至是以模块化方式执行所有内容的全面包。
这是我如何分解我的任务
- 数据访问。我用Knex.js.对于创建我的数据模型当我处理关系数据库时。对于非关系数据库,我将使用相应的库。无论是方式如何将对数据存储的访问分为有意义的数据对象,可以独立地从应用程序使用。这允许我从批处理文件或几乎没有努力的其他应用程序调用我的数据项。
- 商业逻辑。我喜欢将应用程序逻辑隔离为单独的层,尤其是对于非琐碎的应用程序。从我们要求它发生的情况以及如何存储数据,可以分开我们想要做的事情。我发现这种分离使我更灵活地响应应用程序的不断变化的需求,而不会在通信方法中陷入困境。它还使应用程序将应用程序分解为更小的模块。
- 蜜蜂。我在需要时使用Express.js快速构建访问点。这些接入点被设计为非常光明。我更喜欢从请求中提取我需要的信息,然后调用解决方案特定的逻辑层进行任何数据处理或检索。该逻辑层依次呼出与数据库交互的数据对象,以存储/检索来自持久存储的数据。我会在它有意义的地方创建休息终点点,但我还将为更复杂的请求创建帖子端点。
- WebSockets。当它有意义时,我会使用
WS.
模块创建套接字服务器。我可以设置快车
同时创建HTTP / HTTPS端点以访问套接字服务器。当可能的时候,我会尝试使用API调用的相同的业务逻辑对象。 - 报告。我将数据呈现给专用系统 - 例如Tableau或图表工具。我使用节点以准备这些系统的数据。
- 文件管理。有时我们只需要移动文件,或删除它,或读取内容。我用本土
FS.
模块,或者fs-extra.模块执行这些步骤。我用通过2.当我使用Streams来处理大数据集并且需要将结构化数据管成另一个步骤。我也会使用快速CSV使用CSV文件。 - 预部署处理。在实践中,这通常是运行网客那包或者对代码的另一个绑定系统。有时,当部署下一组代码时,虽然部署了下一组代码时,请在应用数据库结构更改,修改任何动态模板,收集文件等。在这些情况下,我编写了一个脚本,该脚本与Bundler系统可以的任何其他步骤’t handle. In essence it is batch processing.
- 计划任务。我创建执行特定任务的JS文件。这可能会清除过时的日志,处理作业队列,从乐队中进行批量电子邮件等。我用单个意图编写每个脚本,然后使用cron以合理的间隔调用该脚本。这些任务通常是在网页中不会在Web页面中发挥的更加加工的密集事。或者是房子保持琐事,以保持应用嗡嗡声的速度快步。
- 批量处理。我经常创建一个接口以允许简单的数据捕获。然后管理层希望进行批量输入,但不希望在应用程序界面中公开批量输入过程。这可以用多年的数据或所有产品预先填充应用程序,或者一次更新100秒或用户记录。这些任务可能是一次性的东西,或者可以定期重复。无论哪种方式要做的就是相同的。读取源数据,按某种方式按摩它,然后用该数据做点什么。
- 命令行脚本。类似于批处理,但批处理脚本具有更窄的使用模式。命令行脚本可以参与参数来定义源数据的位置,输出的所需位置,以及调整如何完成处理的其他设置。我用纱线要么最小的处理解析命令行参数。从那里,它几乎就像批处理一样。
对于一次性脚本,我只需打电话给这些脚本节点路径/到/ my_script.js
。对于重复的任务,但我将脚本属性添加到package.json文件,以便我可以执行命令npm运行mytask.
类型语句。
您是否以不同的方式使用Node.js?如果是这样,请留下评论并让我知道。听到我可以探索的其他方法是很棒的。