从一个js文件调用函数到另一个js文件或HapiJs路由

时间:2018-02-18 00:08:32

标签: node.js hapijs

我有使用HapiJS的nodejs应用程序。我在应用程序中有以下文件

server.js

.........

var allRoutes = require('./AllRoutes');
server.route(allRoutes);

........

function testFunction(){
   //do something
}

AllRoutes.js

var myRoutes= require('./myRoutes.js');
module.exports = [].concat(myRoutes);

myRoutes.js

module.exports = [
{
    method: 'POST',
    path: '/test',
    handler: function (request, reply) {
        var payload = request.payload; 
        testFunction();     <==== getting error here
        ........
        ........
}];

当我试图在myRoutes.js中调用testFunction()时,它失败并给出了

ReferenceError: testFunction is not defined

我还尝试在myRoutes.js中添加以下行,但仍然是同样的错误。

var server = require('./server.js');

如何将函数从一个js文件调用到另一个js文件或HapiJs路由?

2 个答案:

答案 0 :(得分:0)

如果您尝试定义一个函数并使其在每个路径中都可用,您应该检查server methods

请注意,那些必须注册为plugIn。如果你使用hapi 17,那么实现它的方式与其他版本

不同

答案 1 :(得分:0)

如果您需要在多个地方使用然后导出功能,我个人会在单独的文件中编写testFunction。在节点中,您可以使用以下方法导出函数表单文件

Helpers.js

const testFunction = (arg1, arg2) = > {

    // function code
};

module.export = {

    testFunction,
    /// more functions or objects
};

然后您可以从多个地方要求,如下所示

<强> Server.js

const Helpers = require('./helpers');
Helpers.testFunction();

<强> myRoutes.js

const Helpers = require('./helpers');

module.exports = [{
    method: 'POST',
    path: '/test',
    handler: function (request, reply) {

        const payload = request.payload; 
        Helpers.testFunction(); 
        ........
        ........

    };
}];