最好知道一笔交易在 RSK 区块链上被确认了多少次,这样当一个用户将 RIF 发送到另一个钱包或交换钱包时,我们可以看到发生了多少次确认
当我必须保证的过程相当复杂时,我总是有一个问题,如何保证单一责任原则。
我使用 3 层架构后端:控制器(我的 API 端点)| 服务(单一职责功能)| 数据(访问数据库)
假设我有一个由 4 个任务, , ,ProcessA组成的流程。TasksA1TasksA2TasksA3TasksA4
如果我的控制器层上公开了一个端点,例如:POSTMethodProcessA
应该如何编写我的代码以尊重我的服务层的单一责任原则?
我看到的选项:
选项1(控制器必须知道该过程):
class MyController {
exports.processA = functions.https.onRequest(req, res) => {
myservice.doTaskA1(); // single responsability on task1
myservice.doTaskA2(); // single responsability on task1
myservice.doTaskA3(); // single responsability on task1
myservice.doTaskA4(); // single responsability on task1
});
}
Run Code Online (Sandbox Code Playgroud)
选项 2(服务了解流程并放弃单一责任)
class MyController {
exports.processA = functions.https.onRequest(req, res) => {
myservice.doProcessA();
});
}
//inside the service (the doProcessA …Run Code Online (Sandbox Code Playgroud) architecture design-patterns single-responsibility-principle solid-principles
当我尝试从我的网站调用我的云函数时,我遇到了预检错误。我在我的云函数中实现了cors模块,并且我的请求获得了cors标头授权
云功能:
const cors = require('cors')({ origin: true });
exports.CLOUDFUNCTION = functions.https.onRequest(
(request: any, response: any) => {
cors(request, response, async () => {
response.status(200).send('hello');
})
}
);
Run Code Online (Sandbox Code Playgroud)
网站要求:
fetch('FIREBASE_URL/CLOUDFUNCTION',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Headers': 'Content-Type',
'Access-Control-Allow-Headers': 'Authorization'
},
body: JSON.stringify(body), // body is a simple {"variable": "value"}
}
);
Run Code Online (Sandbox Code Playgroud)
错误
Access to fetch at 'FIREBASE_URL/CLOUDFUNCTION' from origin 'MYWEBSITE' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No …Run Code Online (Sandbox Code Playgroud) architecture ×1
blockchain ×1
cors ×1
firebase ×1
javascript ×1
rpc ×1
rsk ×1
single-responsibility-principle ×1
typescript ×1