导入带有属性的ES6模块

时间:2017-03-11 17:12:36

标签: javascript node.js ecmascript-6 mailgun

我在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

我需要知道使用该语法时出现的错误,以及执行此操作的正确方法。谢谢。

2 个答案:

答案 0 :(得分:6)

之前的代码是这样做的:

  1. 需要mailgun-js
  2. 将结果作为函数调用,传递一些配置
  3. 将结果视为mailgun
  4. 要在ES6中做同样的事情,如果我们假设该函数是默认导出,首先我们导入函数,然后我们称之为:

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

答案 1 :(得分:1)

您可以将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
});