![](/img/trans.png)
[英]module.exports colliding / being overwritten in node.js application
[英]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.js
,a.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.