事前定義されたexports
オブジェクトを使用します。以下は、両方の.coffee
と.js
ファイルに適用されます。
schemas.coffee
に次を置き:
exports.EntrySchema = new Schema
aa : String
record : String
status : String
exports.CreditSchema = new Schema
credit : Number
minute : Number
date : Date
#belongs_to subdomain
次に、あなたが行うことができますmain.jsに:
var s = require('./schemas')
var foo = s.CreditSchema
のモジュールのexports
対象となりidは./schemas
です。 ./schemas.coffee
も動作しますが、後でrefactor schemas.coffee
〜schemas.js
または サブフォルダ、またはC++で実装されたDLLにも推奨されません。
一般的な方法は、モジュール名に同じ名前を使用することで、参照がオブジェクトをエクスポートするために:
EntrySchema = exports.EntrySchema = new Schema
aa : String
record : String
status : String
CreditSchema = exports.CreditSchema = new Schema
credit : Number
minute : Number
date : Date
#belongs_to subdomain
:
は
var schemas = require('./schemas')
もう一つの一般的な方法は、すべての輸出用の両方foo
とexports.foo
を持つことです
schemas.coffee
の中ではより短いEntrySchema
の名前を使用することができ、exports.EntrySchema
のどこでもschemas.coffee
の範囲内に入る必要はありません。
両方のプラクティスは便利ですが、必須でも強制もしません。
このexports
は、CommonJSモジュール仕様の実装です。 Node.jsの中の特定の実装のための標準についてhttp://www.commonjs.org/specs/modules/1.0/、およびhttp://nodejs.org/docs/latest/api/modules.htmlを参照してください
次のように埋め込まれた文書がありますまで、それが正常に動作します:\t exports.AccountSchema =新しいスキーマ \t電話:文字列 \tユーザーは:[UserSchema] \t custphones:[CustphoneSchema] \tクレジット:番号 – donald
返されるもの:ReferenceError:UserSchemaが定義されていません – donald
答えを変更しました。別の解決策は、トップスキーマのみをエクスポートすることです。 – nponeccop