节点模块中的导入功能(alphavantage)

Import function in node module (alphavantage)

我正在尝试测试 Node 中的 alphavantage 模块,但它一直抛出此错误:

import Util from './lib/util';
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at wrapSafe (internal/modules/cjs/loader.js:1055:16)
    at Module._compile (internal/modules/cjs/loader.js:1103:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1159:10)
    at Module.load (internal/modules/cjs/loader.js:988:32)
    at Function.Module._load (internal/modules/cjs/loader.js:896:14)
    at Module.require (internal/modules/cjs/loader.js:1028:19)
    at Object.<anonymous> (C:\Users\thepa\Desktop\FANSchool\FANEconimics\app.js:1:15)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1159:10)

文件结构:

"C:\Users\thepa\Desktop\FANEconimics\app.js"
"C:\Users\thepa\Desktop\FANEconimics\data.json"
"C:\Users\thepa\Desktop\FANEconimics\keys.txt"
"C:\Users\thepa\Desktop\FANEconimics\LICENSE"
"C:\Users\thepa\Desktop\FANEconimics\package.json"
"C:\Users\thepa\Desktop\FANEconimics\package-lock.json"
"C:\Users\thepa\Desktop\FANEconimics\README.md"
"C:\Users\thepa\Desktop\FANEconimics.git"
"C:\Users\thepa\Desktop\FANEconimics\node_modules"
"C:\Users\thepa\Desktop\FANEconimics.gitignore"

app.js:

const alpha = require("alphavantage")({ key: 'mykey' });

alpha.data.intraday(`msft`).then(data => {
    console.log(data);
  });

它发生在我运行节点app.js之后。 我看到旧版本的节点不支持 ESM 导入,所以我更新到最新版本 v13.5.0。 还将 npm 更新到 v6.13.4

这是模块问题还是我的设置问题?

老实说,这是图书馆的错误。他们正在使用实验性功能,而没有转译他们的代码。

我的建议是不要使用节点包,而是使用 REST API。

安装 fetch 以轻松使用 API:

npm i --save node-fetch

然后 运行 像这样:

const fetch = require("node-fetch")

const base = "https://www.alphavantage.co/"

const apikey = "demo"

const query = (function_name, symbol, interval = "5min") => fetch(
    base + "/query?" + new URLSearchParams({ "function": function_name, symbol, interval, apikey })
)


query("TIME_SERIES_INTRADAY", "MSFT")
    .then(response => response.json())
    .then(data => {
        console.log(data)
    })