Перенаправление передаваемых аргументов к пакетному файлу окон [дубликат]

Используйте регулярное выражение вместо строки.

app.get(/^\/(.+)/, function(req, res) {
    var href = req.params[0]; // regexp's numbered capture group
});

Обратите внимание, что вы не можете использовать синтаксис строки (app.get('/:href(.+)')), поскольку Express допускает только небольшое подмножество регулярных выражений в строках маршрута и использует эти регулярные выражения в качестве условной проверки для этот конкретный компонент маршрута. Он не захватывает сопоставляемое содержимое в условных выражениях и не позволяет сопоставлять компоненты (части URL, разделенные косой чертой).

Например:

app.get('/:compa([0-9])/:compb([a-z]/')

Этот маршрут совпадает только в том случае, если первый компонент ( compa ) представляет собой одну цифру, а второй компонент ( compb ) это одна буква az.

'/:href(.+)' говорит: «сопоставлять первый компонент, только если контент является чем-то», что не имеет особого смысла; это поведение по умолчанию в любом случае. Кроме того, если вы изучите источник , вы увидите, что Express фактически заставляет точку в этом условном выражении быть буквальной.

Например, app.get('/:href(.+)') фактически компилируется в:

 /^\/(?:(\.+))\/?$/i

Обратите внимание, что ваш . сбежал, поэтому этот маршрут будет соответствовать только одному или нескольким периодам.

94
задан olibre 23 September 2013 в 15:03
поделиться

1 ответ

Отвечает ли

java -jar foo.jar %*

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

189
ответ дан 24 November 2019 в 06:05
поделиться