Javascript 节点模块中的导入功能(alphavantage)
我正在尝试测试节点中的alphavantage模块,它不断抛出以下错误:Javascript 节点模块中的导入功能(alphavantage),javascript,node.js,import,alpha-vantage,Javascript,Node.js,Import,Alpha Vantage,我正在尝试测试节点中的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
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)
app.js:
const alpha = require("alphavantage")({ key: 'mykey' });
alpha.data.intraday(`msft`).then(data => {
console.log(data);
});
它发生在我运行node app.js之后。
我看到旧版本的node不支持ESM导入,所以我更新到了最新版本v13.5.0。
还将npm更新为v6.13.4
这是模块或我的设置的问题吗?老实说,这是库的错误。他们使用的是实验性的特性,而没有转换代码 我的建议是不要使用node包,而是使用restapi 安装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)
})
你能澄清一下吗?您的app.js文件似乎与您遇到的问题无关。运行app.js代码看起来没问题。你看过吗?如果加载
src
目录中的源文件而不是dist
目录中的内置文件,则应该可以修复此问题。没有src或dist目录,它们都在根文件夹中运行。我编辑了文章以显示文件结构,导入功能位于node_modules文件夹中。还添加了我正在运行的命令。请检查此项,谢谢,这很有效!我可能还得联系alphavantage,看看他们是否能解决这个问题。据我所知,这个软件包不是正式的alphavantage软件包。因此,他们可能不会麻烦。但是,我为包创建了一个PR(),修复了这个问题。也许维护人员会合并它:)
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)
})