Как заменить несколько значений в минимизированном файле JavaScript на sed [duplicate]

Я не думаю, что это хорошая практика для проверки идентификатора в файле маршрута для перенаправления на разные контроллеры, и почему:

Вы отправите запрос на эту конечную точку и отправьте идентификатор ,

  1. Является ли этот идентификатор действительным? Откуда вы знаете?
  2. Является ли ID целым числом или строкой?
  3. Существует ли идентификатор в запросе?

, и с этими тремя вопросами вы получите проверки + перенаправление к различным методам и если это идентификатор интереса к запросу базы данных, у вас также будет код базы данных.

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

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

Я считаю, что маршрут или группа маршрутов должна иметь промежуточное ПО (для любой первичной проверки, которую вы требуете от человека, делающего запрос), и каждый маршрут должен указывать на один метод в контроллере. Как только он достигнет контроллера, вместо того, чтобы иметь (Request $ request) в качестве параметров для метода, вы можете создать свой собственный FormRequest, где вы можете проверить идентификатор, если хотите.

Если FormRequest не интересует, вы можете использовать Eloquent (если идентификатор, который вы ищете, связан с ним) FindOrFail, чтобы проверить, существует ли он (если он этого не делает, возвращает ошибку 404 не найдена, если у вас есть 404.blade.php файл). Таким образом, к моменту, когда он достигнет метода контроллера, он был проверен разделами, где маршруты затем защищаются основной авторизацией и аутентификацией FormRequest, чтобы выполнить проверку ввода, и вы можете специально вернуть все, что захотите, с помощью контроллера метод.

Очевидно, что мы не знаем, каково мнение вашего возвращения, но если оно слегка отличается друг от друга, подумайте о его рефакторинге, чтобы вернуть только 1 вид, состоящий из других клинков

0
задан stevo 19 January 2019 в 00:50
поделиться

1 ответ

Вы можете использовать модификатор g в конце регулярного выражения для замены всех вхождений сопоставления с образцом.

Общий пример

{one:"1",two:"2",three:"3",one:"one",plz:"nope"}

Я хочу заменить все после one на "42". Без глобального модификатора я получаю такой результат:

$ sed -E 's/one:[^,]+/one:"42"/' foo.txt
{one:"42",two:"2",three:"3",one:"one",plz:"nope"}

Обратите внимание, что второй экземпляр one: не изменился. Теперь с модификатором g:

$ sed -E 's/one:[^,]+/one:"42"/g' foo.txt
{one:"42",two:"2",three:"3",one:"42",yas:"nope"}

, который заменяет все вхождения.

Ваш конкретный случай

Вставьте это в файл, который может называться replacer.sh:

#!/usr/bin/env bash

# declare `swap` to be an associative array
declare -A swap

swap[appVersion]='"1.4-beta"'
swap[buildNr]='"20190118.1"'
swap[production]="!"
swap[tracking]="!0"
swap[apiHost]='"\/api-2\/"'
swap[foo]='"bar"'

FILE=$1

for key in ${!swap[@]}; do sed -E -i 'bak' "s/${key}:[^,]+/${key}:${swap[${key}]}/g" $FILE; done

Измените ключи и значения в переменной swap так, чтобы вам было нужно. Дело имеет значение, и избежать каких-либо обратной косой черты в ценностях.

Если вам нужно заменить больше вещей, вы можете просто добавить больше пар ключ / значение. Цикл будет перебирать все ключи, применяя изменения по порядку.

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

Запустите программу так: $ ./replacer.sh filename.js

Надеюсь, это поможет!

0
ответ дан Ashton Wiersdorf 19 January 2019 в 00:50
поделиться
Другие вопросы по тегам:

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