Ok I resolved the setting of the action for my root path, but I am still stuck with finding the module.
since var utils = require("../helpers/utils");
was returning
500 Error: Cannot find module '../helpers/utils.js'
I decided to try to do
console.log(require.resolve("application_controller.js"));
and I got back the same error, when I look at my terminal it says
Error in root controller
Error: Cannot find module 'application_controller.js'
at Function.Module._resolveFilename (module.js:338:15)
at Function.require.resolve (module.js:384:19)
at eval (eval at <anonymous> (/Users/bryan/PROTO/tryingout/copycat/node_modules/compound/node_modules/kontroller/lib/base.js:157:17), <anonymous>:5:21)
at eval (eval at <anonymous> (/Users/bryan/PROTO/tryingout/copycat/node_modules/compound/node_modules/kontroller/lib/base.js:157:17), <anonymous>:107:4)
at Controller.BaseController.build (/Users/bryan/PROTO/tryingout/copycat/node_modules/compound/node_modules/kontroller/lib/base.js:158:9)
at Controller.load (/Users/bryan/PROTO/tryingout/copycat/node_modules/compound/lib/controller-extensions.js:257:10)
at eval (eval at <anonymous> (/Users/bryan/PROTO/tryingout/copycat/node_modules/compound/node_modules/kontroller/lib/base.js:157:17), <anonymous>:2:33)
at eval (eval at <anonymous> (/Users/bryan/PROTO/tryingout/copycat/node_modules/compound/node_modules/kontroller/lib/base.js:157:17), <anonymous>:86:4)
at Controller.BaseController.build (/Users/bryan/PROTO/tryingout/copycat/node_modules/compound/node_modules/kontroller/lib/base.js:158:9)
at ControllerBridge.getInstance (/Users/bryan/PROTO/tryingout/copycat/node_modules/compound/lib/controller-bridge.js:257:13)
at ControllerBridge.loadController (/Users/bryan/PROTO/tryingout/copycat/node_modules/compound/lib/controller-bridge.js:193:21)
at ControllerBridge.callControllerAction (/Users/bryan/PROTO/tryingout/copycat/node_modules/compound/lib/controller-bridge.js:155:20)
at ControllerBridge.<anonymous> (/Users/bryan/PROTO/tryingout/copycat/node_modules/compound/lib/controller-bridge.js:149:14)
at callbacks (/Users/bryan/PROTO/tryingout/copycat/node_modules/express/lib/router/index.js:164:37)
at param (/Users/bryan/PROTO/tryingout/copycat/node_modules/express/lib/router/index.js:138:11)
at pass (/Users/bryan/PROTO/tryingout/copycat/node_modules/express/lib/router/index.js:145:5)
at Router._dispatch (/Users/bryan/PROTO/tryingout/copycat/node_modules/express/lib/router/index.js:173:5)
at Object.router (/Users/bryan/PROTO/tryingout/copycat/node_modules/express/lib/router/index.js:33:10)
at next (/Users/bryan/PROTO/tryingout/copycat/node_modules/express/node_modules/connect/lib/proto.js:193:15)
at Object.methodOverride [as handle] (/Users/bryan/PROTO/tryingout/copycat/node_modules/express/node_modules/connect/node_modules/method-override/index.js:48:5)
at next (/Users/bryan/PROTO/tryingout/copycat/node_modules/express/node_modules/connect/lib/proto.js:193:15)
at /Users/bryan/PROTO/tryingout/copycat/node_modules/express/node_modules/connect/node_modules/express-session/index.js:225:9
at /Users/bryan/PROTO/tryingout/copycat/node_modules/express/node_modules/connect/node_modules/express-session/session/memory.js:50:9
at process._tickCallback (node.js:415:13)
Now the thing is - the require.resolve that is raising the error is happening inside of application_controller.js, which means that require cannot resolve application_controller.js from within application_controller.js, it cannot resolve ../helpers/utils.js
So I do the following
var utils = require(require('path').dirname(require.main.filename) + "/app/helpers/utils");
and that works, but really should I have to do this? Is it a bug? Is there something else I am doing wrong?