Паруса: исключить каталог из автоматической загрузки в качестве помощника - PullRequest
0 голосов
/ 15 января 2020

Я создаю приложение Sails. js, используя паруса 1.2.3, узел 10.15. Я хочу включить модуль javascript в мой каталог api / helpers / *, без парусов, автоматически используя его, чтобы попытаться создать помощника. Т.е. у меня есть javascript объекты, которые используют помощников и используются в качестве помощников, но сами не являются помощниками; как в это изображение , где модуль 'rules' импортируется в помощник create-rule, а объекты, экспортируемые этим модулем, используются внутри помощника.

По умолчанию sails пытается загрузить каждый файл в каталоге helpers / * в качестве помощника, и выдает, если базовая реализация не совпадает с реализацией действительного помощника:

ImplementationError: Failed to load helper `create-rule/rules/foo/index` into a Callable!  Sorry, could not interpret "index" because its underlying implementation has a problem:
------------------------------------------------------
• Missing the `fn` property.
------------------------------------------------------

Надеясь, что кто-то может помочь! Дайте мне знать, если нужно больше информации. Заранее спасибо!

1 Ответ

0 голосов
/ 03 февраля 2020

Я не совсем понимаю, что вы пытаетесь сделать. По моему скромному мнению, я бы взял все конструкторы объектов и поместил их как один файл в api / services. Это сделает его автоматически доступным во всех контроллерах. Я бы не позволил методам моего объекта использовать помощников сами по себе (я даже думаю, что вы не можете, по крайней мере, легко). Затем, когда вам нужен помощник для использования вашего объекта, просто передайте его в качестве параметра. Во всяком случае, опять же, по моему скромному мнению; Вы структурируете свой код так, чтобы он соответствовал всем внутренним / помощникам, и это сделает его чрезвычайно трудным для разработки. Предположим, вам удастся заставить его работать все внутри / помощники, только вы без исключения сможете понять, что он делает или как он работает. Не кажется хорошей идеей.

...