【问题标题】:Node.js: Exports Module Not WorkingNode.js:导出模块不起作用
【发布时间】:2011-11-13 19:56:40
【问题描述】:

我在 fwdCallToAgent.coffee 有这个:

exports.fwdCallToAgent = (phone,res,req) -> 

在 server.coffee 上:

fwdCallToAgent = require './lib/fwdCallToAgent'

当我运行 fwdCallToAgent 时,我得到:

2011-11-13T09:49:08+00:00 app[web.1]: TypeError: object is not a function

我在这里错过了什么?

谢谢

【问题讨论】:

    标签: javascript node.js coffeescript


    【解决方案1】:

    require 返回所需模块的exports 属性。

    您需要的是以下任意一项

    一)

    // fwdETC.coffee
    module.exports.fwdETC = function () { ... }; 
    
    // server.coffee
    fwdETC = require('./lib/fwdETC').fwdETC
    

    B)

    // fwdETC.coffee
    module.exports = function () { ... };
    
    // server.coffee
    fwdETC = require './lib/fwdETC'
    

    如果是模块中唯一导出的函数,我个人推荐第二种方法。

    【讨论】:

    • 一月是正确的。使用 CoffeeScript 的解构赋值语法,也可以写成{fwdCallToAgent} = require './lib/fwdCallToAgent'
    • @Jan Kuca 谢谢。但是,当我将 B) 与 module.exports = (phone,res,req) -> User.find {account_id: phone.account_id }, (err, user) -> 一起使用时 - 它无法识别“用户”。
    • 嗯,这是一个不同的问题。您是否需要在 fwdCallToAgent 模块中定义 User 的模块? var User = require('./user');
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-13
    • 2014-08-01
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 2016-12-11
    相关资源
    最近更新 更多