У меня есть простая проверка формы, что я делаю: читаю файл json, получаю свойство из него (Array), затем проверяю, содержит ли он каждый элемент массива, сгенерированного пользователем, и ничего более, например:
[1,2,3,4,5] (json file array)
[1,2,3,4,5,6] (U.G array) //it must return false
, поэтому я использую этот код для реализации этого:
const contains = (arr1, arr2) => {
arr2.every(v => arr1.indexOf(v) !== -1)
}
var match;
fs.readFile('../tags.json', 'utf8', (err, data)=>{
var JsonData = JSON.parse(data);
var tagsArray = JsonData.tags;
console.log(tagsArray)
console.log(tags)
if(tagsArray instanceof Array){
console.log('tagsArray is array')
}
if(!contains(tagsArray, tags)){
match = false
}
else{
match = true
}
console.log(match + ' blah1')
});
console.log(match + ' blah2')
if(match == false){
return res.status(409).send({
message: 'Do not provide your own tags'
});
}
, но он возвращает false каждый раз, потому что contains(tagsArray, tags)
не определены каждый раз.так в чем ключ к этому?