j'envoyer des données de mes champs d'entrée à mon api:Server envoie le succès, même s'il n'a rien trouvé
$.ajax({
url: '/api/login',
type: 'GET',
dataType: 'json',
ContentType: 'application/json',
data: {formData},
success: (data) => {
console.log('SUCCESS')
console.log(data)
this.setState({
isInProcess: false
})
},
error: (jqXHR) => {
console.log(jqXHR)
console.log('ERROR')
this.setState({isInProcess: false})
}
})
sur mon côté serveur que j'ai une fonction pour voir si je suis utilisateur requis dans db:
async function findUser(data) {
try {
const user = await User.findOne({email: data.email,
password: data.password})
console.log('User was found')
return { user }
} catch (err) {
console.log('error', err)
throw err
}
}
qui sera exécuté ici:
app.get('/api/login', async (req, res) => {
const data = req.query
try {
const foundUserData = await findUser(data.formData)
return res.json(foundUserData)
} catch (err) {
return res.status(400).json(err)
}
})
Il fonctionne très bien, mais si un utilisateur n'a pas été trouvé dans db i envoie le succès de toute façon. Pourquoi?
parce qu'il n'y avait pas d'erreur, les captures n'est appelée lorsqu'une erreur est renvoyée – linasmnew
mon fucntion findUser jette une erreur –
« User.findOne » renvoie un document vide si aucun égal n'est trouvé, alors que votre 'findUser' peut lancer une erreur, car il ne se déclenche jamais. –