簡體   English   中英

使用coffeescript運行我的node.js應用程序時,module.exports不緩存

[英]module.exports not caching when using coffeescript to run my node.js application

讓我們說我有一個應用程序:

./app.coffee:

express = require "express"
module.exports = app = express()
require "./models"

./models/index.coffee

app = require "../app"

然后我運行命令: coffee app.coffee

問題是代碼的運行方式與預編譯時的運行方式不同。

當我用node (已編譯)運行我的應用程序時:

  • app.coffee需要models
  • models需要app並返回module.exports (app)

當我用coffee運行我的應用程序時:

  • app.coffee需要models
  • models需要app但應用程序再次運行,並再次需要模

使用coffee運行我的應用程序時,似乎module.exports無法正常工作。 或者也許我做錯了什么?

節點具有改變的行為,用於管理模塊周期 ,使用coffee可執行文件時似乎不支持:

當存在循環的require()調用時,返回時可能無法執行模塊。

[...]

main.js加載a.jsa.js依次加載b.js 此時, b.js嘗試加載a.js 為了防止無限循環,將a.js導出對象的未完成副本返回給b.js模塊。 然后b.js完成加載,並將其exports對象提供給a.js模塊。

如果可以的話,盡量避免循環。 一種可能的選擇是:

express = require "express"
module.exports = app = express()
models = require "./models"
models app
module.exports = (app) ->
  # ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM