AssertionError:当需要自己的模块时,path必须是一个字符串

时间:2014-11-25 22:41:19

标签: node.js require

我想创建一个非常缩小版的hapi-ninja并遇到以下问题:

var settings = require('./app/server/config/settings');
var routes = require('./app/server/config/rout');

第一行的工作原理应该是返回我的模块。但是第二行抛出了Exception

AssertionError: path must be a string
at Module.require (module.js:362:3)
at require (module.js:380:17)
at Object.<anonymous> (/home/hknlof/development/mygit/todos/app/server/config/rout.js:8:21)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/home/hknlof/development/mygit/todos/tryout.js:1:75)

我在Node v0.10.25上运行,hapi-ninja工作正常。当我不需要路由模块时,它确实有效。我的溃败和设置模块看起来和hapi-ninja非常相似。我在一个文件中隔离了两个require语句。两个人都试过,结果还是一样的。无法理解这一点。尝试调试,但内部节点path的值永远不会更改为上面的字符串。编码总是utf-8。

1 个答案:

答案 0 :(得分:0)

感谢您vkuchartkinTracker1。 所以我的错误是我忘了在rout.js

中要求某个目录
var getController = require(module, '../controller');

是我的代码。应该是:

var requireDir = require('require-directory');
var get Controller = requireDir(module, '../controller');

现在我觉得有点愚蠢