2016-11-10 46 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);