我有使用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路由?
答案 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();
........
........
};
}];