Sails получает доступ к сервису с контроллера

#javascript #node.js #sails.js

#javascript #node.js #sails.js

Вопрос:

Я пытаюсь создать сервис в sails sjs, чтобы я мог получить доступ к некоторой бизнес-логике из нескольких контроллеров, я наткнулся на ряд проблем… Сервис представляет собой «Журнал действий», я надеюсь регистрировать данные о конкретных вызовах api в базу данных через модель.

Файловая структура, которую я имею:

 api/services/actionService.js - the service to receive data from controller and log to model
api/models/Action.js - functioning model to store logged actions
api/controllers/ActionController.js - functioning controller to respond to get requests for the action model
api/controllers/AnotherController.js - I wish to access the actionService from here to input data
  
  1. Я не уверен, как ссылаться на сервис из AnotherController.js ; согласно документам sails, я должен иметь возможность вызвать, ActionService(data) но я получаю ActionService is not defined ошибку. Есть ли что-то, что мне нужно сделать, чтобы загрузить эту зависимость в контроллер?

  2. Могу ли я ссылаться на модель из сервиса? На данный момент у меня есть что-то вроде Action.create(action)... в сервисе. Это пока не вызвало проблем, поскольку я не прошел первую проблему, но задаюсь вопросом, нужно ли мне также загружать это как зависимость в сервис?

Я новичок в реализации сервисов в sails sjs, любая помощь приветствуется.

Ответ №1:

Вы можете получить доступ к своим сервисам на любом контроллере, используя этот синтаксис:

<yourServicefilename>.method();

В вашем случае это было бы actionService.<yourMethodName>() .

Комментарии:

1. Спасибо за советы, теперь все заработало. Добавлен метод, как вы предложили, и переименован actionService.js для ActionService.js проблема с заглавными буквами при вызове ActionService. Большое спасибо.