Я должен послать электронные письма на уровне служб или на слое контроллера?

Я использовал экспресс-статические файлы, чтобы делать то, что вы просите, если вы хотите прочитать больше, вы можете сделать это на http://expressjs.com/en/starter/static-files.html [113 ]

Прежде всего, в вашем файле "app.js" вы должны добавить эти две строки:

app.use('/public', express.static(__dirname +'../public'));
app.use('/admin', express.static(__dirname +'../admin/js'));

После этого вы должны проверить index.html с обеих сторон. - Завершите проекты и убедитесь, что у каждого из них есть правильная база. Например,

public / index.html должен иметь:


admin / index.html должен иметь:


Я надеюсь, что это работает для вас!

6
задан 27 April 2009 в 18:37
поделиться

7 ответов

Согласовано. Они принадлежат на уровне обслуживания. Контроллер должен только быть очень тонким; просто вызывая соответствующие классы бизнес / данные / что угодно и отбрасывая данные в совпадающем представлении.

16
ответ дан 8 December 2019 в 03:01
поделиться

Я всегда проектирую свой бизнес-уровень так, чтобы он мог работать независимо от среды, через которую представлены данные. Так, например, если бы я отправлял электронное письмо при создании новой учетной записи, я бы хотел, чтобы это происходило независимо от того, создает ли пользователь учетную запись через веб-сайт или приложение для настольного компьютера. В этом случае отправка электронной почты будет происходить на бизнес-уровне, поскольку она является общей для обоих носителей.

5
ответ дан 8 December 2019 в 03:01
поделиться

Большую часть времени вы можете прояснить подобные проблемы, подумав о том, что бы вы хотели случиться, если бы вместо BLL у вас был слой веб-службы или приложение Windows. вашего веб-приложения. Вы все еще хотели бы, чтобы то же самое электронное письмо вышло? Если ответ «да», то отправка электронного письма является частью вашей бизнес-модели и должна быть включена в список BLL. если ответ «нет», то отправка электронного письма - это действительно логика приложения, и она должна идти на уровне приложения.

5
ответ дан 8 December 2019 в 03:01
поделиться

Я бы прикрепил его на сервисном уровне.

4
ответ дан 8 December 2019 в 03:01
поделиться

Если бы это была основная бизнес-функция, я бы поместил ее на уровень обслуживания.

Однако я мог бы абстрагировать класс «MailSender», чтобы мой уровень обслуживания не был явно привязан к отправке электронной почты определенным образом (например, с использованием System.Web.Mail). Вы можете использовать другой метод позже (например, асинхронная отправка почты с использованием очередей). Это также позволяет вам безопасно выполнить модульное тестирование без рассылки спама (заменив MailSender на тот, который фактически не отправляет почту):)

0
ответ дан 8 December 2019 в 03:01
поделиться

в mix и pdc phill сказал в своем выступлении:

thin controllers, fat models
1
ответ дан 8 December 2019 в 03:01
поделиться

На самом деле у меня просто есть действия контроллера в моих контроллерах. Вся остальная бизнес-логика решается каким-то другим слоем, каким бы он ни был.

0
ответ дан 8 December 2019 в 03:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: