Должен ли я использовать два отдельных проекта для интерфейса / бэкэнда в дополнение к API или объединить их в один?

1

У меня есть несколько вопросов, на которые я хотел бы получить ответы.

Поэтому я создал сервер backend node с express & mongo, который запускает определенные задачи в сети и сохраняет его в базе данных в цикле. Я также добавил страницу администратора с экспресс-загрузкой. И это прекрасно работает. Тогда мне нужна была страница с интерфейсом - для этого я выбрал VueJS. Я начал этот проект отдельно по нескольким причинам. Я чувствовал, что это было бы легче начать, так как раньше у меня не было каких-либо интерфейсных интерфейсов, и проект backend был написан в машинописном тексте, и я предпочел бы использовать обычный es6 JS.

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

И это создало вопрос:

  • Должен ли я создавать новые функции и/или создавать и использовать API? Будут ли какие-либо проблемы с монгодбом в виде доступа к нему и написания его двумя разными процессами? Будут ли проблемы с безопасностью, если я создам "общедоступную" apis из уже существующей логики бэкэнд? (Еще не написано ни одной из них).

  • Или я должен использовать время и импортировать проект frontend в бэкэнд (что означает также перевод нового в машинопись или переход на обычный ES6 JS)? Будет ли это угрозой безопасности, так как я бы предпочел не иметь бэкэнд-логику на моем сайте.

Я ценю любой ответ на это!

Спасибо :)

Теги:
vue.js
express

2 ответа

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

Это вопрос, можете ли вы позволить себе запустить два сервера? отделяя ваш передний конец от вашего заднего конца, на самом деле является хорошим шагом, учитывая все микросервисы, поскольку он позволяет вам масштабировать эти вещи отдельно для будущих целей. Как и ваш бэкэнд, которому требуется больше ресурсов, как только вы начнете обслуживать мобильного пользователя, или когда вы получите больше вызовов api, в то время как ваш внешний сервер должен обслуживать только ui и активы, ничего больше. Хотя явный недостаток - это увеличение затрат, поскольку вам нужно запускать два сервера вместо одного, что трудно, когда вы только начинаете


Должен ли я создавать новые функции и/или создавать и использовать API?

Для вашего бэкэнда? Да. API-интерфейсы - это способ сделать что-то сейчас в веб-пространстве, поскольку он в будущем докажет вам и позволяет более контролируемый и единый способ доступа к вашему серверу (все проходит через api). Поэтому, если ваш интерфейс не будет доступ к вашей базе данных через API, я предлагаю вам реорганизовать их для этого.

Для ваших забот о монго, я уверен, что у манго уже есть функции, чтобы избежать тупиков.

Что касается безопасности вашего API, я предлагаю проверить JWT.


следует использовать время и импортировать проект frontend в бэкэнд

если вы идете по этому пути вместо этого из-за проблем с издержками, я бы предложил переписать один из кодовых баз, чтобы он соответствовал другому для единообразия, но делайте это на досуге (мы не можем вам тратить все ваше драгоценное время на переписывание кода, который уже работает просто отлично). это действительно не так много проблем с безопасностью, поскольку код backend не отправляется на передний план для всех ваших пользователей, чтобы видеть

  • 0
    Большое спасибо за ответ. Я пошел на отдельный бэкэнд и интерфейс. Я уже получил API на месте - теперь мне нужно только обеспечить его через JWT. Спасибо :)
0

Позвольте мне начать с того, что я никогда не использовал Vue. Однако всякий раз, когда я использую реакцию, я всегда делаю отдельные проекты для переднего и заднего конца. Я считаю, что это "чище", чтобы сохранить два отдельных.

Я не вижу оснований для того, чтобы вы могли расшифровать весь проект из машинописного текста. Просто попросите свой внешний интерфейс обратиться к вашему серверу.

Если вы хотите улучшить свою безопасность в Интернете, я рекомендую вам ознакомиться с проектом Open Web Application Security.

  • 0
    Большое спасибо за ответ. Я пошел на отдельный бэкэнд и интерфейс. Я уже получил API на месте - теперь мне нужно только обеспечить его через JWT. Спасибо :)

Ещё вопросы

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