使用module.exports和ES6导出导入

时间:2016-04-06 17:17:45

标签: javascript node.js ecmascript-6

我正在尝试将函数导入文件,然后从该文件中导出。这应该是直截了当的,但由于某种原因,我无法让它发挥作用。

search_action.js

.status

index.js

function search_actions() {

    this.receive_results = function() {
        return {
            type: 'RECEIVE_RESULTS',
            results: results
            }
        }
}

module.exports = search_actions

尽管console.log(search_actions.receive_results)打印了该函数,但index.js底部的导出失败并带有意外的令牌。那么这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

转口的最后一行无效:

export search_actions.receive_results

您不能在右侧使用foo.bar引用,因为导出需要一个不合格的名称。您可以在对象声明中引用该字段并导出:

export default {
  search_actions: search_actions.receive_results
}

有关导出语法,请参阅规范的section 15.2.3。您遇到的问题是导出的x.y部分,对象或局部变量将解析该部分。

如果你也使用ES6 import,你也可以这样做:

import {receive_results} from 'search_actions';
export default receive_results;