我只是开始我的JS之旅,我会非常感激,如果你帮我接收数据使用JS.我发现,在雅高交换网站上的信息,这是交换网站蜡(游戏加密货币).
什么是在现场:
//代码尚未测试,提供原因说明
import fetch from 'node-fetch'
import { Api, JsonRpc, RpcError } from 'eosjs'
const rpc = new JsonRpc('https://wax.greymass.com', { fetch })
//从表中获取购买订单簿
const { rows } = await rpc.get_table_rows({
code: 'alcordexmain',
table: 'buyorder',
limit: 1000,
scope: 29, // Market id from /api/markets
key_type: 'i128', // we are using it for getting order sorted by price.
index_position: 2
})
我遇到了一些麻烦,因为JSHint版本和更新到9。但仍然“等待”是红色的,JSHint是要求分号后,这导致了大量的新错误。然而,该项目是在浏览器中打开,当然没有任何信息。但在控制台中,我看到一个错误。
index.html:1未捕获的类型错误:解析模块说明符“node-fetch”失败。相对引用必须以“/"、.”/"或..“/"开头。
P.S.我检查了这样的错误的帖子,但实际上不明白我应该做什么,因为他们都提出了一些JSON文件的变化,我只有index.html和js. file.
1条答案
按热度按时间vojdkbi01#
浏览器中的JavaScript和服务器上的JavaScript是有区别的。
浏览器中的JavaScript是可以注入HTML(内联或链接)的代码,由浏览器进行评估。
服务器上的JavaScript和浏览器上的JavaScript没有关系,语言是一样的,但环境不同,就像“在Paint中绘制”和“在真实的生活中的画布上绘制”,颜色是一样的,但其他一切都不一样。
因此,您在这里尝试做的是在浏览器中运行服务器端JavaScript,这是您得到此错误的真实的原因。
有两种方法可以修复此错误。
也许是你该去的地方
你应该安装Node.js,阅读关于npm的信息,初始化你的npm项目,把所有的东西放入.js文件中,然后使用Node进行评估。
简而言之,假设你已经安装了Node.js,
node -v
在你的终端上输出了一些东西,那么你需要做的就是:然后使用您最喜欢的编辑器编辑
index.js
,在其中添加您要运行的代码。在“顶层”使用
await
可能会出错,这种情况下,将其放入async函数中:就是这样.你根本不需要在这里运行浏览器.
也许你不应该去,但可以去
如果您需要在浏览器中运行JavaScript,那么您需要使用webpack之类的工具捆绑所有deps(这仍然需要您使用Node.js & npm),或者您可以使用客户端替代品替换您尝试使用的deps。
例如,您可以使用Fetch API,而不需要
node-fetch
。我不知道用什么来代替
eosjs
,但是如果你决定在浏览器中使用这个依赖项,你至少需要使用import maps来告诉浏览器如何解析这样的依赖项,因为,你得到的错误告诉你的正是这个:您的浏览器不知道您要导入的内容。浏览器使用URL作为导入路径,而不是ID(或“裸名称”)。