#javascript #node.js #regex #express
Вопрос:
Я знаю, что могу создать общий маршрут, скажем
app.get(/^((?!/api/v1/).)*$/, (req, res) => {
res.sendFile(path.join(__dirname, '../client/build', 'index.html'));});
Комментарии:
1. В чем заключается ошибка? Это работает неправильно?
2. дело в том, что я хочу игнорировать /api/v1 с моих маршрутов ! Мой код не работает
Ответ №1:
Если вы хотите игнорировать /api/v1
путь, используйте
/^((?!/api/v1).)*$/
Пример
app.get(/^((?!/api/v1).)*$/, (req, res) => {
res.sendFile(path.join(__dirname, '../client/build', 'index.html'));});
и за игнорирование /api/v1/
/^((?!/api/v1/).)*$/
Пример
app.get(/^((?!/api/v1/).)*$/, (req, res) => {
res.sendFile(path.join(__dirname, '../client/build', 'index.html'));});
console.log(/^((?!/api/v1).)*$/.test('/api/v1'));
console.log(/^((?!/api/v1).)*$/.test('/api/example'));
Комментарии:
1. @bokino12 чего именно ты хочешь? Проверьте
/api/v1
, не возвращает ли значение false, если вы используете/^((?!/api/v1).)*$/
регулярное выражение. Так в чем же дело?