coffeescript node.js相互要求返回undefined

时间:2013-07-27 21:17:40

标签: node.js coffeescript

我怎样才能在咖啡脚本中实现这样的东西?当我运行节点a.js时,A和B都是类型函数

a.js

exports = module.exports = A;
var B = require('./b');
function A() {
  console.log('I\'m A');
}
console.log('B=', typeof B);

b.js

exports = module.exports = B;
var A = require('./a');
function B() {
  console.log('I\'m B');
}
console.log('A=', typeof A);

我在Coffee-Script中尝试了几种方法,但没有一种方法可以像上面的javascript那样完全相同。

1 个答案:

答案 0 :(得分:1)

让模块相互依赖听起来不是一个好主意,但如果你需要的话,这可行:

a.coffee

A = () ->
  console.log('I\'m A')

module.exports = A

B = require('./b')

console.log('B=', typeof B)

b.coffee

B = () ->
  console.log('I\'m B')

module.exports = B

A = require('./a')

console.log('A=', typeof A)

请确保您阅读了node.js文档的module cycles部分(它讨论了模块在返回之前可能无法完成执行)。