// добро пожаловать в асинхронность
// в all_mail засовываем промис(обещание) того, что в скором времени будет результат
var all_mail = new Promise((resolve, reject)=>{
mailModel.find().exec((err, docs) =>{
resolve(docs);
});
});
all_mail.then((data)=>{
// когда же результат будет получен, обрабатываем его
console.log(data); // все ок)
});
Метод $.ajax поддерживает HTTP PATCH.
Проблема, которую вы видите, заключается в том, что метод ajax ищет PATCH в заголовке ответа Access-Control-Allow-Methods параметров предполетной проверки. Либо этот заголовок отсутствует в вашем ответе, либо метод PATCH не был включен в значение этого заголовка. В любом случае проблема возникает на сервере, а не на вашем клиентском коде.