Где / как хранить функции, которые можно использовать одновременно в Vue front-end и Node back-end? - PullRequest
1 голос
/ 09 марта 2020

Я только начинаю с Node / Express back-end и Vue. js front-end. Я также использую рендеринг на стороне сервера.

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

Я понимаю, что могу создать Vue mixin но это будет работать только для внешнего интерфейса. Я также хочу запустить функцию RemoveHTML() в Node.js, если пользователь отправляет код HTML через форму, и мне нужно удалить HTML перед сохранением его в базе данных (просто пример, а не реальный вариант использования).

Где я могу хранить свои «глобальные» функции, чтобы их могли использовать как Vue. js, так и Node.js?

1 Ответ

2 голосов
/ 11 марта 2020

Сохраните их в файле. js (или .ts?), Доступном обоим. Вы можете создать плагин или миксин, чтобы обернуть функциональность для Vue, но бизнес-логика c должна быть в отдельных файлах js / ts даже для Vue проекта, если это возможно.

Я подозреваю, что вы можете использовать два отдельных репозитория, один для внутреннего интерфейса и один для внешнего интерфейса. В этом случае вы можете захотеть создать отдельный репозиторий, чтобы легче делиться проектами. Более того, вы можете поместить этот publi sh этот код в npm (либо сделать его общедоступным для всех, либо использовать подписку для сохранения приватности)

В качестве альтернативы вы также можете иметь monorepo, который хранит серверную часть и интерфейсный код в том же репо git, так что вы можете просто хранить общий код там (вместе с модульными тестами).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...