Использовать предопределенный объект 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
s становится объектом exports
модуля с идентификатором ./schemas
. ./schemas.coffee
тоже будет работать, но это не рекомендуется, так как позже вы можете изменить рефакторинг schemas.coffee
на schemas.js
или
schemas/
подпапка или даже DLL, реализованная в C ++.
Обычной практикой является использование одного и того же имени для имен модулей и ссылок на объект экспорта:
var schemas = require('./schemas')
Другой распространенной практикой является использование 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
Таким образом, вы все равно можете использовать более короткие EntrySchema
имена в schemas.coffee
и не должны прибегать к exports.EntrySchema
везде в schemas.coffee
.
Обе практики удобны, но не требуются и не применяются.
Это exports
средство является реализацией спецификации CommonJS Modules. См. http://www.commonjs.org/specs/modules/1.0/ для стандарта и http://nodejs.org/docs/latest/api/modules.html для конкретной реализации в Node.JS