2

完整错误:未捕获的 ReferenceError:模块未在 vsop87Bearth.js:1 中定义

我正在尝试使用从这个(https://github.com/commenthol/astronomia)存储库中找到的一些 js 文件来计算太阳的直角坐标。我是 js 和服务器的新手,所以我不确定如何使用 module.exports。有一个名为vsop87Bearth.js的文件,其中包含一些模拟地球的坐标,它看起来像这样:

module.exports = {
  stuff: numbers,
  name: "earth"
};

我需要使用带有名为position()的函数的vsop87Bearth.js文件来完成我需要的操作。这是我试图计算事物的模块Funcion_PSol.js :

import position from './astronomia-master/src/solarxyz.js'
import Planet from './astronomia-master/src/planetposition.js'
import * as earth from './astronomia-master/data/vsop87Bearth.js' //I'm not sure of THIS line
var tierra = new Planet(earth);
var pos = position(earth, 2448908.5)

此外,错误可能是由 HTML 文件引起的,就是这样:

<!DOCTYPE html>
<html>
<head>
    <script type="module" src="./astronomia-master/data/vsop87Bearth.js"></script>
    <script type="module" src="Funcion_PSol.js"></script>
</head>
</html>

注意:我正在使用 browsersync 来托管我的项目,而我没有使用 Node

4

2 回答 2

1

由于您使用的是 esm 语法,因此您需要将导出语法更新为以下内容。


export = {
  stuff: numbers,
  name: "earth"
};

https://nodejs.org/api/esm.html#esm_json_modules

于 2021-06-29T05:58:09.953 回答
0

我认为您正在尝试做的是:

const earthData = require('astronomia/data/vsop87Bearth')

这会将您想要的数据导入到vsop87Bearth变量中。然后该变量将具有您想要的属性,例如earthData.LearthData.name

他们的 README 文件有更多示例:https ://github.com/commenthol/astronomia#using-a-single-package


只是一个反馈,当您“导入为”时

import * as earth from './astronomia-master/data/vsop87Bearth.js'

您使用earth变量,而不是data.earth像以前那样。

于 2020-05-14T02:49:32.043 回答