首页 > 解决方案 > 如何让 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 是一个好主意吗?

感谢有关设计模式的建议。

标签: node.jssails.jsethereumweb3

解决方案


此代码应在应用程序启动时作为服务执行。

例如,您可以创建一个名为 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();

推荐阅读