#javascript #node.js #coffeescript
#javascript #node.js #coffeescript
Вопрос:
В моем основном файле много схем, которые я хочу удалить в другой файл.
Как я могу это сделать?
Например:
EntrySchema = new Schema
aa : String
record : String
status : String
CreditSchema = new Schema
credit : Number
minute : Number
date : Date
#belongs_to subdomain
Ответ №1:
Используйте заранее определенный 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. Смотрите http://www.commonjs.org/specs/modules/1.0 / для стандарта и http://nodejs.org/docs/latest/api/modules.html для конкретной реализации в Node.JS
Комментарии:
1. это работает нормально, пока не появится встроенный документ, подобный этому: exports. Схема учетных записей = новая схема телефон : Строка пользователи: [UserSchema] пользовательские телефоны: [CustphoneSchema] кредит : Номер
2. Он возвращает: ReferenceError: схема пользователя не определена
3. Изменен ответ. Другим решением является экспорт только верхней схемы.