我一直在努力在另一个文件中破坏我的mongo对象,我的对象结构如下所示。
const env = {
project: 'CRIBBBLE BACKEND',
url: 'localhost',
api: {
url: 'https://api.dribbble.com/v1/',
},
port: parseInt(process.env.PORT, 10) || 3000,
mongo: database,
};
export default env;
但是,当我尝试import
另一个mongo
文件中的js
对象时,{ mongo } from 'config'
返回的值为undefined
。
但是,如果我将导出默认值更改为module.exports
,它将按预期工作。
所以,我只是想知道module.exports
和export default
之间有什么区别?
答案 0 :(得分:2)
module.exports
是从不同文件导入和导出的NodeJS(CommonJS)样式。 import/export
ES6
具有做同样事情的功能。
如果您export defualt
,则需要像import env from 'location'
一样导入它(看看我发出{}
部分),然后通过mongo
访问env.mongo
。您不能直接获取mongo
对象。
答案 1 :(得分:1)
使用foo
导出时,导入后使用{default: foo}
可以导出整个导出的import * as bar from './foo'
。这就是您无法访问所需属性的原因。尝试导入为:bar
并使用console.log(bar)
探索{{1}}以查看其下发生的情况。另外,如需了解更多信息,请访问2ality.com上的es6 module exports