我有一些小型 Node 应用程序执行一些基本的操作,例如检查内容和填充我的数据库(由 CRON 触发)。在我的 Nuxt 应用程序中,我需要使用这些 Node 应用程序中的部分内容。组织它的最佳方式是什么?我应该将它们分开还是将它们与我的 Nuxt 应用程序融合?我是否从这些 Node 应用程序中复制我需要的内容并在 Nuxt 中对其进行调整,是否使用服务器端中间件在我的 Nuxt 项目中添加这些 Node 应用程序,或者我是否使用 Express 创建我的 Nuxt 应用程序并使用/server/index.js 以某种方式在其中添加我的 Node 应用程序?
我们举个例子。您有一个 Node 应用程序,可以每小时检查一些数据并填充数据库。在 Nuxt 应用程序中,您有一个显示数据库内容的页面,但您首先要确保自上一小时以来数据库中没有添加任何新内容。我必须在每个 Nuxt 页面中运行的代码与 Node 应用程序的代码相同(检查并填充数据库)。在两个地方使用两次相同的代码看起来有点愚蠢(并且难以维护和更新)。但我不确定如何让这个 Node 应用程序在我的 Nuxt 应用程序中每小时运行一次。任何建议将不胜感激
最佳答案
这是一个控制流程,可以帮助您思考设计此 CRON 微服务。有很多方法可以做到这一点,这可能不是最好的方法,但我认为它适合您的用例。
- 您的服务器中有一个
services
目录(也可以称为中间件
)。 - 包含一个
cron.js
文件,其中包含任务运行程序的逻辑。 - 在
cron.js
中,从 Node 向 Vue 发出预定响应,例如res.JSON({message: 'checkNewData'})
等 JSON 关键字。这将被称为“服务器发送事件”。服务器发送的事件只是在 Node 环境中按照定义的时间表自主发生的事件。 - 在 Vue 的根级别
App.vue
中,使用created()
钩子(Hook)注册一个事件监听器,该监听器将监听服务器发送的” checkNewData"
JSON 对象。当此事件监听器听到 JSON 响应时,它应该触发 Vue 检查适当的组件,打包任何新数据,并通过post
或put
将其发送到数据库> http 调用,具体取决于您是要添加新数据,还是用新数据替换旧数据。
此配置将为您提供一个用于自动更新的闭环系统。下一个挑战是使此操作针对特定于客户端,但一旦您开始工作,就需要担心这一点。同样,其他人可能对此有不同的方法,但这就是我处理流程的方式。
关于javascript - 组织后端(Node)流程和使用部分流程的前端(Vue/Nuxt)的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56274342/