Разница огромная - у дива нет никакого поведения. Вешать событие - это кривой костыль, который для дива и не нужен, вдобавок. Действительно, самым простым решением было бы обернуть весь блок в ссылку, а не ссылку в блок, тут вы правы.
Попробуйте вместо сохранения в БД (ну или в дополнение к нему) добавить логирование запросов в файл, чтобы убедиться, что проблема именно с редиректами, а не с запросом.
Как из приведённого foreach следует "то есть нужно найти..." объясните мне, пожалуйста, я не понимаю...
Ну ладно, допустим, из этого пояснения можно уже понять примерно, чего вы хотите, если напрячь воображение. Но ведь таблица store_orders никак не связана с другими, как вы хотите по ней фильтровать?
Ну так router.get сам как раз и передаёт в колбэк аргументы, ему не нужно их выцарапывать:
function get(path, callback) {
// всё "мясо" функции опущено
var req = 'req';
var res = 'res';
var next = 'next';
callback(req, res, next);
}
get('/', (req, res,next) => {
//do something
})