【问题标题】:AssertionError: path must be a string is thrown when requiring own moduleAssertionError: path must be a string 当需要自己的模块时抛出
【发布时间】:2014-11-25 22:41:19
【问题描述】:

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

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

第一行应该返回我的模块。但是第二行抛出异常

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 工作正常。当我不需要 rout 模块时,它确实可以工作。我的溃败和设置模块看起来与 hapi-ninja 中的非常相似。我将两个 require 语句隔离在一个文件中。两个都自己试了,结果还是一样。无法理解这一点。尝试调试,但节点内部path 的值永远不会更改为上述字符串。编码总是 utf-8。

【问题讨论】:

  • 那么,第 8 行的 rout.js 里面是什么?
  • rout.js 第 8 行是您的错误所在。

标签: node.js require


【解决方案1】:

谢谢vkuchartkinTracker1。 所以我的错误是我忘记在我的 rout.js 中需要某个目录

var getController = require(module, '../controller');

是我的代码。应该是:

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

现在我觉得有点傻

【讨论】:

    猜你喜欢
    • 2013-09-22
    • 2016-10-10
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 2017-03-19
    • 1970-01-01
    相关资源
    最近更新 更多