Node.js:他のファイルからの呼び出しコード

メインファイルには別のファイルに削除したいスキーマがたくさんあります。

どうやってやるの?

例えば:

EntrySchema = new Schema 
    aa : String
    record : String
    status : String

CreditSchema = new Schema 
    credit : Number
    minute : Number
    date : Date
    #belongs_to subdomain
ベストアンサー

定義済みの 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

id 。/ schemas のモジュールの exports
オブジェクトになります。 ./ schemas.coffee も機能しますが、後で
schemas.coffeeschemas.js
にリファクタリングすることはできません schemas/サブフォルダやC
++で実装されたDLLにも適用されます。

一般的な方法は、モジュール名とエクスポートオブジェクトへの参照に同じ名前を使用することです。

var schemas = require('./schemas')

もう1つの一般的な方法は、すべてのエクスポートで foo
exports.foo の両方を使用することです。

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

したがって、 schemas.coffee 内の短い EntrySchema
名を使用して、スキーマ内のどこでも exports.EntrySchema 。コーヒー。

両方のプラクティスは便利ですが、要求も強制もしません。

この exports 機能は、CommonJS Modules仕様の実装です。詳しくは、
http://www.commonjs.org/specs/modules/1.0/
をご覧ください。標準、 http://nodejs.org/docs/latest/api/modules.html
Node.JSの特定の実装

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です