这里的第一篇文章,温文尔雅:)
我正在学习一些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 -modules标志,但我仍然没有任何运气。
有没有人能说清楚我需要修改什么才能让这个模块工作?
谢谢!
发布于 2019-05-20 11:22:05
将文件名更改为.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
}
*/
})https://stackoverflow.com/questions/56213880
复制相似问题