【发布时间】:2013-12-04 00:33:04
【问题描述】:
在 Node.js 和 Coffeescript 中,我定义了一个类 Connector,它继承自 Node 的 EventEmitter。
我想定义Connector 的一个子类,称为Foo。当我尝试定义Foo 的新实例时,我收到:TypeError: Cannot read property 'prototype' of undefined。
我认为这是因为我没有在我的module.exports 中导出Connector 类,但是我怎样才能既导出我的_.tap() 函数,又使Connector 类可用于其他类作为要扩展的父类?
# connectors.coffee
{ EventEmitter } = require 'events'
FS = require 'fs'
Q = require 'q'
_ = require 'underscore'
logger = require './logger'
class Connector extends EventEmitter
constructor: (@credential) ->
name : 'Unnamed Connector'
group: undefined
search: (query) ->
@_search(query)
this
_results: (results) ->
@emit 'results', results
_end: ->
@emit 'end'
_error: (error) ->
@emit 'error', error
module.exports = _.tap {}, (connectors) ->
FS.readdirSync("#{__dirname}/connectors").forEach (file) ->
# some logic
# foo.coffee
Connector = require '../connectors'
logger = require '../logger'
class Foo extends Connector
constructor: ->
name: "test_connector"
_search: (query) ->
logger.info "Foo connector queried: #{query}"
logger.info "Returning fake results, stand by"
module.exports = Foo
【问题讨论】:
标签: javascript node.js inheritance coffeescript