如何在节点js路由中调用外部函数

我对这是如何工作有点困惑…

我正在编写一个节点/快速应用程序,并且有一个函数我只是写在它自己的文件中,我需要在我的路线中使用它,而我只是想调用这个函数。

在另一个文件(tranformTheData.js)中有:

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

在我的节点app.js文件中

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

我现在可以使用吗?

 formatJSON(data) 

并利用这个function? 或者我还需要做其他的事情,我已经看到了一些这样做的例子,但是他们对我没有意义。

你应该做这个:

 // 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是导出一个对象文字,而该对象有两个function。 要求该文件并将其分配给一个variables将把该variables赋值给对象文字,然后该对象文字就可以访问其方法。

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

确保在transformTheData.js中添加缺less的右括号:

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

现在你应该可以使用它的文件名来require这个文件,并且像你正在尝试的那样调用这个函数:

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