CoffeeScript中的Node.js module.exports

Jar*_*tin 19 node.js coffeescript

我正在研究一个简单的例子; 我可以使用Javascript,但我的CoffeeScript版本有问题.

这是person.coffee:

module.exports = Person

class Person 
    constructor: (@name) ->

    talk: ->
        console.log "My name is #{@name}"
Run Code Online (Sandbox Code Playgroud)

这是index.coffee:

Person = require "./person"
emma = new Person "Emma"
emma.talk()
Run Code Online (Sandbox Code Playgroud)

我期望运行index.coffee并看到控制台输出"我的名字是艾玛".相反,我收到一个错误说TypeError:undefined in not a function.

Pet*_*ons 27

module.exports线放在底部.

---- ---- person.coffee

class Person 
    constructor: (@name) ->

    talk: ->
        console.log "My name is #{@name}"

module.exports = Person
Run Code Online (Sandbox Code Playgroud)
Person = require "./person" // [Function: Person]
p = new Person "Emma" // { name: 'Emma' }
Run Code Online (Sandbox Code Playgroud)

当您module.exports在顶部分配时,Person变量仍然是undefined.


vau*_*han 16

你也可以写person.coffee:

class @Person
Run Code Online (Sandbox Code Playgroud)

然后使用以下内容index.coffee:

{Person} = require './person'
Run Code Online (Sandbox Code Playgroud)


Chr*_*sMJ 5

你也可以写

module.exports = class Person
  constructor: (@name) ->
    console.log "#{@name} is a person"   
Run Code Online (Sandbox Code Playgroud)

然后在index.coffee任何一个

bob = new require './person' 'Bob'
Run Code Online (Sandbox Code Playgroud)

或者你可以这样做

Person = require './person'
bob = new Person 'bob'
Run Code Online (Sandbox Code Playgroud)