module.exports没有在Node.js中返回函数

时间:2018-11-11 18:53:14

标签: node.js function

每个人我都是NODE.JS的初学者,我正在其中使用module.exports函数,其中已编写了hello函数。我试图从其他文件导入。但是它不起作用。任何人都可以解决此问题。谢谢提前...

index.js


module.exports=function(){   
         
    hello:(data)=>{
       return "Good night" +data;
    }
}



trail.js



const index=require('./index');
const e=new index();
console.log(e.hello("abc"));

4 个答案:

答案 0 :(得分:0)

我找到了解决方案,我们必须更改index.js中的代码。在ES6中有可用的函数构造函数。我们应该使用此关键字,此关键字引用当前的类对象。因为在javascript中,函数是第一类Objects。纠正我如果我错了。如果有人知道也欢迎其他人提出解决方案,请发布答案。

Index.js


module.exports=function(){   

   this.hello=(data)=>{
       return "Good night" +data;
    }
}

Trail.js

const index=require('./index');
const e=new index();
console.log(e.hello("abc"));

答案 1 :(得分:0)

将函数creating new objects from it用作构造函数时,必须使用this引用每个对象以分配其属性:

module.exports=function(){
    this.hello = (data) => {
        return "Good night" +data;
    };
}

语法<identifier>:具有不同的含义,具体取决于其位置/周围。在函数主体中使用时,在语句的开头,它仅定义label。要使它定义属性,必须在object initializer中使用它。

答案 2 :(得分:0)

您也可以通过以下方式使用它:

module.exports=function(data){   
    return "Good night" +data;
}

const temp = require('./index');
console.log(temp('demo developer'));

答案 3 :(得分:0)

我不知道您要找出正确的决定是什么,但也许您想这样做:

index.js:

exports.hello = data => {
  return 'Good night ' + data;
};

trail.js:

const e = require('./index');
console.log(e.hello('Jhonny'));