Javascript 销毁导出默认值和module.exports之间的差异

Javascript 销毁导出默认值和module.exports之间的差异,javascript,node.js,babeljs,Javascript,Node.js,Babeljs,我一直在努力在另一个文件中销毁我的mongo对象,我的对象结构如下所示 const env = { project: 'CRIBBBLE BACKEND', url: 'localhost', api: { url: 'https://api.dribbble.com/v1/', }, port: parseInt(process.env.PORT, 10) || 3000, mongo:

我一直在努力在另一个文件中销毁我的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;
但是当我试图从'config'导入另一个
js
文件中的
mongo
对象时,返回的值是
未定义的
。
但是如果我将导出默认值更改为
module.exports
,它将按预期工作


所以,我只是想知道
module.exports
exportdefault
之间的区别是什么?

module.exports
是从不同文件导入和导出的NodeJS()样式
import/export
是执行相同操作的
ES6
功能


如果您
导出defualt
您需要像导入“位置”的环境一样导入它(看我发出
{}
部分),然后通过
env.mongo
访问
mongo
。您不能直接获取
mongo
对象。

当您使用
export default foo
导出时,导入后使用
{default:foo}
可以获得整个导出的
foo
。这就是您无法访问所需属性的原因。尝试导入为:
import*as bar from./foo'
并使用
console.log(bar)
浏览
bar
,查看下面发生的情况。另外,要了解更多信息,请查看:在2ality.com上,So的可能重复,我的情况有什么不同?好的,但我仍然不明白为什么我不能使用
导出默认值
销毁返回的对象