Страницы

Поиск по вопросам

среда, 10 июля 2019 г.

Роутинг node js

Доброго времени суток. пишу сайт вопреки node js. И в главном файле у меня есть два роутера app get
app.get('/:actReg',function(req, res, next) { pid = req.originalUrl.substring(15, 30); req.session.linkPass=pid;
someq.pool.query('UPDATE Users SET Active ="'+ 1 +'" WHERE Email="'+ rows[0].email +'"', function (err, rows, field) { }); if (rows.length > 0) { newForm = '

' + '

'+'Ваша активація пройшла успішно'+'

' + '
'; } else { newForm = 'Посилання не дійсне' } res.f=newForm; next() });
}); var lang = require('./bin/langKey.js'); app.get('/:actReg', function(req, res, next) { languageSess = lang.funcLang(req.session.lang, 'missPassword'); languageSess.text_1 = res.f; languageSess.title = 'a3boot'; var men = menu.rightSide(req,res,next, languageSess); languageSess.menu = men; res.render('missPassword', languageSess)
});

app.get('/:missPass',function(req, res, next) {
pid = req.originalUrl.substring(10, 25); req.session.linkPass=pid; someq.pool.query('Select * From missPassword WHERE link ="' + pid + '"', function (err, rows, field) {
if (rows.length > 0) { newForm = '

'
} else { newForm = 'Посилання не дійсне' } res.f=newForm; next() });
});
app.get('/:missPass', function(req, res, next) { languageSess = lang.funcLang(req.session.lang, 'contacts'); languageSess.text_1 = res.f; languageSess.title = 'a3boot'; res.render('missPassword', languageSess) });
Но почему-то node js рендерит только роутер, который прописан выше(в файле). Тоисть даже если вызывать /:missPass роутерит к /:actReg. Возможно это изза того что он види ":" и неважно что там дальше. Но как это пофиксить?


Ответ

даже если вызывать /:missPass роутерит к /:actReg
Для примера, в строке /:missPass спрятано две сущности сразу:
Шаблон /* для совпадения путевой части URL (имя переменной распознать из пути невозможно, его там просто нет) Шаблон /missPass для разбора путевой части на поля в запросе
Вот и получается, что у /:actReg и у /:missPass шаблоны для совпадения одинаковые: /*
Как починить? Сделать правила так, чтобы шаблоны для совпадения были разными. Например, сделав опознавательные префиксы:
/actReg/:actReg /missPass/:missPass
/missPass/* != /actReg/*, шаблоны для совпадения разные, победа.

Комментариев нет:

Отправить комментарий