第一篇文章,请保持温柔:)
我正在学习一些node.js,并且正在尝试使用名为“ node-bom”的模块进行一些操作
我熟悉用于调用节点模块的'require'方法。但是,作者提供了以下代码示例,该示例不适用于node.js:
import {Bom} from 'node-bom'
const bom = new Bom({
/// options
})
bom.getParsedStateData('VIC', {
bypassCache: false // default: false to use cache
})
.then((stateData) => {
console.log(stateData)
/*
{
forecast: {}, // forecast data
observations: {} // current station's observations data
}
*/
})
此代码产生以下错误:
(node:10363) ExperimentalWarning: The ESM module loader is experimental.
file:///Users/ajudge/node-bom-testing/index.mjs:1
import {Bom} from 'node-bom'
^^^
SyntaxError: The requested module 'node-bom' does not provide an export named 'Bom'
at ModuleJob._instantiate (internal/modules/esm/module_job.js:93:21)
at async ModuleJob.run (internal/modules/esm/module_job.js:108:20)
at async Loader.import (internal/modules/esm/loader.js:128:24)
我已经做了一些进一步的阅读,这似乎是ES6问题。因此,我已将文件更改为.mjs并使用--experimental-modules标志,但我仍然没有运气。
任何人都可以澄清我需要进行哪些修改才能使该模块正常工作吗?
谢谢!
答案 0 :(得分:0)
将文件名更改为.js
包docs中的示例面向TypeScript(因此import
)。
在Node.JS中,您的代码应如下所示:
const Bom = require('node-bom')
const bom = new Bom.Bom({
/// options
})
bom.getParsedStateData('VIC', {
bypassCache: false // default: false to use cache
})
.then((stateData) => {
console.log(stateData)
/*
{
forecast: {}, // forecast data
observations: {} // current station's observations data
}
*/
})