Bonjour,
Je m'adresse à vous car j'ai rencontré un problème et malgré avoir tout essayé je n'ai pas réussi à le résoudre.
Voilà le contexte :
J'ai créé une fonction tscrap qui prend comme paramètre un nom d'utilisateur twitter et me permet à partir de ce dernier d'extraire quelques informations sur le compte que je stocke dans une base de donnée mongoDB.
La fonction marche nickel après test et j'ai voulu l'implémenter dans un site web qui contient un formulaire username twitter qui me renvoie donc le nom d'utilisateur que je fais rentrer dans la fonction et je fais une recherche mongoDB pour extraire les données que la fonction a stockée pour les utilisées dans un nouveau code html (en .ejs).
Seul problème j'ai l'impression que ma fonction ne s'exécute pas et je reçois un message d'erreur à chaque fois que j'envoie le formulaire, cependant si je lance ma fonction de façon externe cela marche sans problème j'arrive à accéder aux données.
J'ai fait plusieurs requêtes mongoDB et je me rend compte que la fonction n'est pas lancée ce que je ne comprend pas.
Voila la partie du code qui me pose un problème :
Si je ne déclare pas User c'est que j'ai créé un fichier model.js qui le définit déjà que j'ai inséré dans mon fichier index.js.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 app.post('/ajouter/', urlencodedParser, function (req, res) { tscrap.tscrap(req.body.twitterinfo) User.find({ username: req.body.twitterinfo }, function (err, clients) { res.render('show.ejs', { nom: clients[0].nom, username: clients[0].username, urlImage: clients[0].urlImage, nbFollowi: clients[0].nbFollowi, dateCreation: clients[0].dateCreation, nombreF: clients[0].nombreF }) }) });
Je reçois le message d'erreur suivant :
Et voila aussi le formulaire en html que j'utilise :nom: clients[0].nom,
^
TypeError: Cannot read property 'nom' of undefined
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <form action="/ajouter/" method="post"> <p> <label for="twitterinfo"> Entrez votre username twitter</label> <input type="text" name="twitterinfo" id="twitterinfo" autofocus /> <input type="submit" /> </p> </form>
En espérant que quelqu'un trouvera une solution, je vous remercie par avance de votre attention.![]()
Partager