2012-06-21 18 views
7

Quiero exportar algunas clases, por ejemplo, Dog y Cat. Una forma de hacerlo es:CoffeeScript y NodeJS: ¿Cómo exporto varias clases?

class Dog 
    bark: -> console.log "Arff! :D" 

class Cat 
    meaow: -> console.log "Meaw!" 


module.exports = {Dog, Cat} 

¿Cómo puedo hacer algo similar sin escribir los nombres de las clases dos veces?

+0

Y si se añade una tercera clase, es lo que quieren exportar también? –

+0

@FlorianMargaine Sí. –

Respuesta

5

Usted podría utilizar algo como esto:

class exports.Dog 
    bark: -> console.log "Arff! :D" 

Esto compila a:

exports.Dog = (function() { 

    function Dog() {} 

    Dog.prototype.bark = function() { 
    return console.log("Arff! :D"); 
    }; 

    return Dog; 

})(); 
1

Generalmente quiero una variable local (por lo que no tengo que escribir exports.x todo el tiempo) y una variable de exportación (así que no tengo que definir todas las exportaciones al final), entonces hago lo siguiente:

exports.dog = class Dog 
    bark: -> 

exports.cat = class Cat 
    meow: -> 
3

Una forma alternativa a esto es de la siguiente manera:

module.exports = 
    Dog: class Dog 
      bark: -> console.log "Arff! :D" 

    Cat: class Cat 
     meaow: -> console.log "Meaw!" 

A continuación, puede hacer lo siguiente:

animals = require './animals' 

dog = new Animals.dog() 
Cuestiones relacionadas