Node.js: код вызова из других файлов - PullRequest
0 голосов
/ 13 ноября 2011

У меня в основном файле много схем, которые я хочу удалить в другой файл.

Как я могу это сделать?

Например:

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

CreditSchema = new Schema 
    credit : Number
    minute : Number
    date : Date
    #belongs_to subdomain

1 Ответ

2 голосов
/ 13 ноября 2011

Использовать предопределенный объект 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...