微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NodeJs:TypeError:require…不是一个函数

如何解决NodeJs:TypeError:require…不是一个函数

我认为这意味着module.exports在您的./app/routes模块中未将其分配为函数,因此因此require('./app/routes')无法解析为函数,因此,您不能将其作为这样的函数调用require('./app/routes')(app, passport)

让我们看看./app/routes,如果你需要我们进一步评论说。

它看起来应该像这样;

module.exports = function(app, passport) {
    // code here
}

您正在导出一个可以像这样调用函数require('./app/routes')(app, passport)

可能发生类似错误的另一个原因是,如果您具有循环模块依赖关系,而模块A试图这样做,require(B)而模块B试图这样做require(A)。发生这种情况时,require()子系统将检测到该错误,并且其中一个子系统将返回null,因此尝试将其作为函数调用将不起作用。在这种情况下,解决方法删除循环依赖关系,通常是通过将通用代码分解为第三个模块来实现,尽管修复循环依赖关系的细节在每种情况下都是唯一的,但这两个模块可以分别加载。

解决方法

我试图要求一个文件,然后将其传递给var。我正在按照教程创建身份验证系统。编写server.js文件并尝试编译后,出现bson错误,因此我更改了需要它的发行版本的猫鼬代码。

这是我的代码和错误:

server.js

    require('./app/routes')(app,passport);

错误

require('./app/routes')(app,passport);
                   ^

TypeError: require(...) is not a function
           at Object.<anonymous> (d:\Node JS learning\WorkWarV2\server.js:38:24)
           at Module._compile (module.js:434:26)
           at Object.Module._extensions..js (module.js:452:10)
           at Module.load (module.js:355:32)
           at Function.Module._load (module.js:310:12)
           at Function.Module.runMain (module.js:475:10)
           at startup (node.js:117:18)
           at node.js:951:3

Process finished with exit code 1

我已经读到这通常意味着requireJS无法正确加载,但我不知道为什么或如何修复它。

根据评论进行编辑:

根据要求,console.log(require);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。