2016-11-10 69 views
1

我是如何工作的有点糊涂了......如何调用外部函数节点JS路线

我写一个节点/快递应用程序,有我只是在自己的文件中写了一个函数,我需要在我的路线中使用它,我只想调用该功能。

在其他文件(tranformTheData.js)有:

module.exports = { 
    tranformTheData:function (data){ 
    console.log('whatever') 
} 

在我的节点app.js文件我有

var formatJSON = require('./js').tranformTheData; 

可我只是现在使用

formatJSON(data) 

和utilitze这个功能?或者我还需要做其他的事情,我已经看到了一些这样做的例子,但它们对我没有意义。

+0

应该工作,但你的module.exports缺少一个右括号。 –

回答

1

你应该这样做:

// transformData.js 
module.exports = { 
    formatJSON: function(data) { 
     console.log('whatever') 
    }, 
    otherFunction: function() { 

    } 
} 

// app.js 
var tranformTheData = require('./path/to/tranformTheData.js'); 
var formatJSON = tranformTheData.formatJSON; 
var otherFunction = tranformTheData.otherFunction; 

formatJSON(data); // this will work 
在这种情况下

module.exports被导出对象文本,并且对象具有两个功能。要求文件,并将其分配给一个变量将分配该变量的对象的文本,这然后可以访问它的方法。

当你调用这些方法,你就可以通过在你想要的任何PARAMS。在formatJSON的情况下,它接受data参数。

+0

对象文字是否必须有2个功能?我真的只需要那个。我假设没有,但我想我会问。我明白,你可以添加多个功能,只需要一个模块。 – illcrx

+0

不,不。我只是强调对象的正确结构,并显示你怎么能要求的模块并访问其功能。您可以拥有尽可能多的或尽可能少的功能。 –

0

确保添加缺少右括号中transformTheData.js:

module.exports = { 
    tranformTheData: function(data) { 
     console.log('whatever'); 
    } 
}; 

现在,你应该使用它的文件名可以require文件,并调用你正在尝试做的功能:

var formatJSON = require('./transformTheData').tranformTheData; 

formatJSON(data);