【问题标题】:Import ES6 modules with properties导入带有属性的 ES6 模块
【发布时间】:2017-03-11 17:12:35
【问题描述】:

我在带有 NodeJS 的服务器上使用 ES6。我使用 babel 对其进行转译,一切正常,但我有一个问题,我不知道如何进行。我需要能够在代码 ES6 中编写这段代码 ES5,我希望有人解释如何做到这一点以及为什么它对我正在做的事情不起作用。

特别是,我需要在 ES5 中制作这段代码,在 ES6 中运行:

const mailgun = require('mailgun-js')({
  apiKey: config.mail.api.api_key,
  domain: config.mail.api.domain
})

目前,我正在尝试使用以下代码,但它不起作用:

import mailgun from 'mailgun-js'
mailgun = {
  apiKey: config.mail.api.api_key,
  domain: config.mail.api.domain
}

配置参数有一个可以正常工作的 config.js 文件。 编译代码时,控制台在日志中返回以下错误消息:

Log Message

我需要知道使用该语法的错误是什么,以及正确的方法是什么。谢谢。

【问题讨论】:

标签: javascript node.js ecmascript-6 mailgun


【解决方案1】:

前面的代码是这样做的:

  1. 需要mailgun-js
  2. 将结果作为函数调用,传入一些配置
  3. 将其结果作为mailgun

在 ES6 中也是如此,如果我们假设该函数是默认导出,则首先我们导入该函数,然后我们调用它:

import mailgunFactory from 'mailgun-js';
const mailgun = mailgunFactory({
  apiKey: config.mail.api.api_key,
  domain: config.mail.api.domain
});

【讨论】:

    【解决方案2】:

    你可以把你的 ES5 改成这样:

    const mailgun = require('mailgun-js');
    const your_var = mailgun({
      apiKey: config.mail.api.api_key,
      domain: config.mail.api.domain
    });
    

    在 ES6 中,这将是:

    import mailgun from 'mailgun-js';
    const your_var = mailgun({
      apiKey: config.mail.api.api_key,
      domain: config.mail.api.domain
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-07
      • 1970-01-01
      • 2019-07-06
      • 2017-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      相关资源
      最近更新 更多