web3前端交互的问题请教

飞奔的大象
  • 7

我用 nodejs + koa 写了一个应用,部分代码如下

router/home.js

'use strict';
const Router = require("koa-router");
const router = new Router({prefix: '/'});
router
    .get('/', async (ctx, next) => {
        await ctx.render("home", {

        });
    })
module.exports = router;

view/home.ejs

<html>
<head>
...
</head>
<body>
<button id="eth_requestAccounts">Login</button>
<script src="https://cdn.jsdelivr.net/gh/ethereum/web3.js@1.3.5/dist/web3.min.js"></script>
<script>
    function showResult(node, msg) {
        node.parent().append(" <span>" + msg + "</span>");
    }
    jQuery("#eth_requestAccounts").click(async function () {
        requestAccounts = await ethereum.request({ method: 'eth_requestAccounts' });
        showResult(jQuery("#eth_requestAccounts"), requestAccounts);
    });
</script>
</body>
</hmtl>

现在的情况是当点击页面的中的 login 会自动呼叫出 metamask 这个浏览器插件,进行许可登录。

我想请问,是否可以将这段交互放到后端去,而不是在前端交互?是不是所有页面和浏览器插件之间的交互只能在前端?谢谢

回复
阅读 755
1 个回答
✓ 已被采纳

是呀。肯定是浏览器执行才能触发插件的交互呀。

但是你可以通过后端通知前端,前端收到指令后触发。

一般方法有 socket、轮询之类的。

就是说你前端定时查后端,要不要单击按钮,后端说点,啪,前端点一下

宣传栏