#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
-
Я не уверен, как ссылаться на сервис из AnotherController.js ; согласно документам sails, я должен иметь возможность вызвать,
ActionService(data)
но я получаюActionService is not defined
ошибку. Есть ли что-то, что мне нужно сделать, чтобы загрузить эту зависимость в контроллер? -
Могу ли я ссылаться на модель из сервиса? На данный момент у меня есть что-то вроде
Action.create(action)...
в сервисе. Это пока не вызвало проблем, поскольку я не прошел первую проблему, но задаюсь вопросом, нужно ли мне также загружать это как зависимость в сервис?
Я новичок в реализации сервисов в sails sjs, любая помощь приветствуется.
Ответ №1:
Вы можете получить доступ к своим сервисам на любом контроллере, используя этот синтаксис:
<yourServicefilename>.method();
В вашем случае это было бы actionService.<yourMethodName>()
.
Комментарии:
1. Спасибо за советы, теперь все заработало. Добавлен метод, как вы предложили, и переименован actionService.js для ActionService.js проблема с заглавными буквами при вызове ActionService. Большое спасибо.