节点模块中的导入功能(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)
})
我正在尝试测试 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)
})