Я использую регулярное выражение для экспресс-маршрутизации, и я попал в блокпост. У меня есть куча тестов, которые запускаются, когда URL-адрес заканчивается результатом GET. a GET на строке , не заканчивающейся в, возвращает список папок и ссылок на тесты.Каков правильный синтаксис регулярных выражений для использования с экспресс-маршрутами?
У меня есть регулярное выражение, которое работает на обычных строках
var noresult = new RegExp(/^(?![\w\/:].*result$)/);
var result = new RegExp(/^[\w\/:].*result$/);
Но я не могу за жизнь мне понять, как реализовать их в экспресс. Я в настоящее время:
router.get('/:testPath(^[\w\/:].*result$)', [function (req, res, next) {
// run mocha test
// render page
}
для моих тестов и
router.get('/:path(?![\w\/:].*result$)', function (req, res) {
// build folder/file structure
// render page
}
, но ни одна из этих работ для любого URL. Я хочу, чтобы параметры testPath и req возвращались в объект req.params.
Например, следующие три линии работают, когда строки, но не тогда, когда прошло URLs выразить:
/test/path/to/test
/test/path/to/test/
/test/path/to/testfile/result
Я видел примеры, как использование и не использовать/^ или $/начать или конец строки в примерах экспресс-маршрутизации. Я не уверен, что они там или нет.
Каков правильный способ реализации регулярного выражения в экспресс-маршрутах?