Ошибка говорит о том, что у вас express пытается ответить с заголовком (в стиле "Статус 200" - все ок).
Проблема в том, что у вас уже был ответ, и еще раз ответить он не может. Дословно: не могу установить заголовки, после того, как они отправлены.
Решение, всегда использовать ключевое слово return, когда вы "отвечаете". В вашем примере это либо res.json, либо next. Суть в этом.
Пример из api:
![d4b2dd2981684414a39e31573f403b77.jpg](https://habrastorage.org/files/d4b/2dd/298/d4b2dd2981684414a39e31573f403b77.jpg)
Если убрать return, то в случае ошибки, мы попадем в if (err) ..., ответим как ошибка(400), и не выйдем из роутинг функции, пойдем ниже и ответим как успешно(200) - и бам-с, получим ошибку - не могу установить заголовки...