node.js - 如何让 Sails.js 应用程序监听以太坊区块链的事件以在持久层上执行 CRUD
问题描述
我在以太坊区块链上部署了一个智能合约,它会发出一些带有必要数据的事件。
我有一个需要监听此事件的sails.js 应用程序。
粗略地说,javascript 代码看起来像 -
var event = contract.myEvent();
event.watch((err, res) => {
console.log(res); // event response
// API call to DB for persistence
});
我的问题是这个代码应该放在sails.js 应用程序中的什么位置,因为sails.js 遵循MVC,使用sails.js 是一个好主意吗?
感谢有关设计模式的建议。
解决方案
此代码应在应用程序启动时作为服务执行。
例如,您可以创建一个名为 EventsService.js 的文件:
let event = contract.myEvent();
exports.start = function () {
event.watch((err, res) => {
console.log(res); // event response
// API call to DB for persistence
});
}
然后你可以像这样启动服务:(来自 app.js 文件)
const eventService = require('path/to/EventService.js');
eventService.start();
推荐阅读
- java - 你如何在 Spring Boot 中分离角色?(Web vs Scheduler 等)
- html - 有没有办法在 iOS 14 上的 Safari 中使用 Wheel 日期选择器?
- docker - 使用 docker 在 jupyter 中进行包管理和卷最佳实践
- sql - 根据条件执行增量更新的 SQL 语句
- java - jsoup - 无法获取特定网站
- groovy - 为什么 Groovy 会更改我的收藏类型?
- sql - 使用 SQL,如何仅使用 datetime 计算每个月每个 ID(列)的行数并将它们放在月度列中?
- sql - SQL查询一个表中的所有日期范围,而不是在另一个给定外键的任何日期范围之间
- java - Java套接字连接-连接服务器重新启动时如何设置超时
- google-app-engine - 如何使用 Google Cloud Endpoints 执行身份验证?