Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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 如何在node js route中调用外部函数_Javascript_Node.js_Express - Fatal编程技术网

Javascript 如何在node js route中调用外部函数

Javascript 如何在node js route中调用外部函数,javascript,node.js,express,Javascript,Node.js,Express,我有点困惑这是怎么回事 我正在编写一个node/express应用程序,我刚刚在它自己的文件中编写了一个函数,我需要在路由中使用它,我只想调用该函数 在另一个文件(transformthedata.js)中,有: module.exports = { tranformTheData:function (data){ console.log('whatever') } 在我的node app.js文件中 var formatJSON = require('./js').tranf

我有点困惑这是怎么回事

我正在编写一个node/express应用程序,我刚刚在它自己的文件中编写了一个函数,我需要在路由中使用它,我只想调用该函数

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

module.exports = {
    tranformTheData:function (data){
    console.log('whatever')
}
在我的node app.js文件中

var formatJSON = require('./js').tranformTheData;
我现在能用吗

formatJSON(data)

利用这个功能?或者我必须做其他事情,我已经看到了一些这样做的例子,但是它们对我来说没有意义。

确保在transformTheData.js中添加缺少的结束括号:

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

现在,您应该能够
使用文件名要求
文件,并在尝试执行以下操作时调用函数:

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

formatJSON(data);
您应该这样做:

// 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
在本例中,导出的是一个对象文本,该对象有两个函数。需要该文件并将其分配给变量将把该变量分配给对象文本,对象文本随后可以访问其方法


当您调用这些方法时,您可以传入您想要的任何参数。在
formatJSON
的情况下,它接受应该可以工作的
数据
参数

,但是您的module.exports缺少一个右括号。对象文本必须有两个函数吗?我真的只需要一个。我想不会,但我想我会问的。我的想法是,你可以添加多个函数,只需要一个模块。不,它不需要。我只是强调了对象的正确结构,并展示了如何需要模块并访问其功能。您可以拥有任意多或任意少的函数。