Предложения по работе с `exports` в node.js

Теория:

Одна из вещей, которые мне нравятся в node.js, - это использование его в качестве команды инструмент линии.

Теоретически я могу писать библиотеки на Javascript и размещать их в моем каталоге ~ / .node_libraries , а затем я могу повторно использовать эти библиотеки.

Так, например, у меня есть файл text.js в ~ / .node_libraries , и в нем есть набор функций, связанных с текстом, которые я использую постоянно ( depunctuate () , tokenize_text () и тому подобное).

Прелесть в том, что я мог использовать один и тот же файл text.js со своими сценариями командной строки и на стороне сервера. Прямо сейчас я занимаюсь всей этой обработкой текста с помощью Python, но я хотел бы просто придерживаться одного языка.

Практика:

AFAICT, чтобы создать модуль node.js, я должен прикрепить все, что я хочу, чтобы было доступно для , экспортирует или это . Т.е. в text.js я должен сделать:

exports.depunctuate = depunctuate

или

this.depunctuate = depunctuate

Если я использую экспорт , У меня проблемы с использованием библиотеки на стороне сервера а-ля:

<script src=text.js></script>

, потому что тогда я получаю экспорт не определен ошибки.

Если я использую this , я избегаю ошибки , но все, что я экспортирую, в конечном итоге прикрепляется к объекту окна.

Есть ли способ настроить эти библиотеки, чтобы избежать обеих этих проблем? Например, есть ли способ обернуть экспорт exports , чтобы переменная была очевидна для узла, но не тогда, когда она используется в простом файле Javascript на сервере?

5
задан Bryan Field 29 March 2011 в 16:16
поделиться