Используйте «require» в приложении sails js

1

При отключении глобальных переменных документы предлагают использовать следующие альтернативы:

  • _ = require ('lodash')
  • myService = sails.services.myservice
  • myModel = sails.models.mymodel
  • sails = req._sails

Будут ли какие-либо проблемы, требующие "паруса", "услуги" и "модели", как и любой другой модуль?

Пробовав его, он действительно работает, однако я чувствую, что, возможно, что-то не хватает.

Теги:
sails.js

1 ответ

0
Лучший ответ

Использование require для сервисов всегда актуально; глобализация просто для удобства.

С другой стороны, выполнение require('api/models/User.js') почти наверняка не даст вам то, что вы хотите, поскольку эти файлы используются Sails для создания классов моделей. Таким образом, единственный способ надежно использовать модели в Sails без включения глобальных sails.models - это использовать sails.models.

Наконец, в то время как require('sails') обычно дает вам ссылку на приложение Sails, не рекомендуется использовать его таким образом. Если вы запускали несколько приложений Sails в одном и том же процессе (что вы могли бы сделать в автоматизированных тестах), то он не надежно вернул бы правильное приложение. Вам гораздо лучше использовать req._sails в контроллерах, и this.sails в моделях и сервисах.


  • 0
    Спасибо за подробный ответ. В документах не упоминается доступ к парусам через "this.sails" для моделей и сервисов. Следует ли передавать ссылку от контроллера предпочтительнее? например, внутри действия контроллера вызовите myService.someMethod (req._sails)
  • 0
    Это совершенно this.sails способ сделать это, но этот this.sails точно безопасен. Re: документация, хороший звонок, будет смотреть на это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню