У меня есть простая fs.readFile
функция для чтения данных файла json, получения одного из его свойств (массива) и проверки, содержит ли этот массив каждый элемент массива, созданного пользователем, и я использую этот код для этой цели
const contains = (arr1, arr2) =>
arr2.every(v => arr1.indexOf(v) !== -1)
fs.readFile('../tags.json', 'utf8', (err, data)=>{
if(err) return res.status(500).send({message: err.message});
var JsonData = JSON.parse(data);
var tagsArray = JsonData.tags;
console.log(tagsArray)
console.log(tags)
if(tagsArray instanceof Array){
console.log('tagsArray is array')
}
var bool = contains(tagsArray, tags)
if(!bool){
return res.status(409).send({
message: 'don't provide your own tags'
})
}
})
const user = await User.findById(req.userId, '-password').lean()
const book = await Dish.create({
//properties
})
return res.status(200).send({var: JSON.stringify(book)})
} catch (error) {
return res.status(500).send({
message: error.message
})
}
у меня есть попытка перехватить блок внутри функции (router.post), где fs.readFile
, но он все равно выдает мне следующее сообщение:
UnhandledPromiseRejectionWarning: необработанное отклонение обещания.Эта ошибка возникла либо в результате выброса внутри асинхронной функции без блока catch, либо в результате отклонения обещания, которое не было обработано с помощью .catch ().
, а также этой ошибки:
UnhandledPromiseRejectionWarning: Ошибка: невозможно установить заголовки после их отправки.