Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用module.exports和ES6导出导入_Javascript_Node.js_Ecmascript 6 - Fatal编程技术网

Javascript 使用module.exports和ES6导出导入

Javascript 使用module.exports和ES6导出导入,javascript,node.js,ecmascript-6,Javascript,Node.js,Ecmascript 6,我正在尝试将一个函数导入到一个文件中,然后从该文件中导出它。这应该是直截了当的,但由于某种原因,我无法让它工作 search_action.js function search_actions() { this.receive_results = function() { return { type: 'RECEIVE_RESULTS', results: results } } }

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

search_action.js

function search_actions() {

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

module.exports = search_actions
index.js

require('es6-promise').polyfill();
var SearchActions = require('./search_actions.js') 
var search_actions = new SearchActions()
//console.log(search_actions.receive_results)
export search_actions.receive_results

尽管console.log(search\u actions.receive\u results)打印函数,但index.js底部的导出失败,并带有意外标记。那么,正确的做法是什么呢

重新导出的最后一行无效:

export search_actions.receive_results
不能使用右侧的
foo.bar
引用,因为导出需要非限定名称。您可以引用对象声明中的字段并导出:

export default {
  search_actions: search_actions.receive_results
}
有关导出语法,请参见规范的第页。您遇到的问题是导出的
x.y
部分,对象或局部变量将解决该部分

如果您同时使用ES6
import
,您还可以执行以下操作:

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

谢谢,但那也不行。这是可行的:导出函数receive_results(results){return{type:'receive_results',results:results}}}但是我试图避免必须在index.js中编写它(宁愿从search_actions.js导入,然后导出返回的函数)。如果您使用
导入
或将函数分配给变量,您可以这样做。您实际上只需要一个不带点的引用。正如您所说,var receive_results=search_actions.receive_results export{receive_results}“意外标记”表示您有语法错误。它与
search\u actions.receive\u results
是否具有正确的值无关。