javascript 无法解析模块说明符

fykwrbwg  于 2023-01-11  发布在  Java
关注(0)|答案(1)|浏览(180)

我只是开始我的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.

vojdkbi0

vojdkbi01#

浏览器中的JavaScript和服务器上的JavaScript是有区别的。
浏览器中的JavaScript是可以注入HTML(内联或链接)的代码,由浏览器进行评估。
服务器上的JavaScript和浏览器上的JavaScript没有关系,语言是一样的,但环境不同,就像“在Paint中绘制”和“在真实的生活中的画布上绘制”,颜色是一样的,但其他一切都不一样。
因此,您在这里尝试做的是在浏览器中运行服务器端JavaScript,这是您得到此错误的真实的原因。
有两种方法可以修复此错误。

也许是你该去的地方

你应该安装Node.js,阅读关于npm的信息,初始化你的npm项目,把所有的东西放入.js文件中,然后使用Node进行评估。
简而言之,假设你已经安装了Node.js,node -v在你的终端上输出了一些东西,那么你需要做的就是:

$ cd path/to/the/directory/you/like
$ npm init -f
$ npm install --save node-fetch eosjs
$ touch index.js

然后使用您最喜欢的编辑器编辑index.js,在其中添加您要运行的代码。
在“顶层”使用await可能会出错,这种情况下,将其放入async函数中:

import fetch from 'node-fetch'
import { Api, JsonRpc, RpcError } from 'eosjs'

const rpc = new JsonRpc('https://wax.greymass.com', { fetch })

(async () => {
  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
  });
})();

就是这样.你根本不需要在这里运行浏览器.

也许你不应该去,但可以去

如果您需要在浏览器中运行JavaScript,那么您需要使用webpack之类的工具捆绑所有deps(这仍然需要您使用Node.js & npm),或者您可以使用客户端替代品替换您尝试使用的deps。
例如,您可以使用Fetch API,而不需要node-fetch
我不知道用什么来代替eosjs,但是如果你决定在浏览器中使用这个依赖项,你至少需要使用import maps来告诉浏览器如何解析这样的依赖项,因为,你得到的错误告诉你的正是这个:您的浏览器不知道您要导入的内容。浏览器使用URL作为导入路径,而不是ID(或“裸名称”)。

相关问题