Bonjour,

Je commence Node.js et quoi de mieux que de tenter de faire une app pour comprendre son fonctionnement ^^.

J'ai une question concernant un appel d'une API externe (TMDB) et côté client j'utilise AngularJS

Le but est de mettre à jour les infos de la série. J'utilise http://docs.themoviedb.apiary.io/#re...discovertv/get pour sauvegarder en masse des séries télé, mais n'ayant pas toutes les infos dans cette requête je fais appel à http://docs.themoviedb.apiary.io/#reference/tv/tvid/get lorsque je visite une série sur mon application.

Ce que je voudrais c'est éviter l'appel de MovieDB.tvInfo si dans mon schema Moogouse j'ai la valeur fully_scraped à true

Voici mon code actuel (l'avantage de ça c'est que lors que la requête est fini, dans ma vue via angular, la valeur plot n'est pas vide et s'affiche correctement)
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.get('/api/shows/:id', function(req, res, next) {
 
    MovieDB.tvInfo({id: req.params.id, language: 'fr'}, function(err, data) {
        Show.findById(req.params.id, function(err, show) {
            if(err) return next(err);
 
            if(!show.fully_scraped) {
                show.plot = data.overview;
                show.fully_scraped = true;
 
                console.log("it's now scrapped");
 
                show.save(function(err) {
                    if (err)
                        console.log('error')
                    else
                        console.log('success')
                });
            }
            res.send(show);
        });
    });
});
Autrement si je fais ceci j'évite bien la requête vers l'api de tmdb mais dans ma vue, angular ne connait pas encore la valeur de "plot"

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
25
26
27
 
app.get('/api/shows/:id', function(req, res, next) {
 
    Show.findById(req.params.id, function(err, show) {
        if(err) return next(err);
 
        if(!show.fully_scraped) {
            MovieDB.tvInfo({id: req.params.id, language: 'fr'}, function(err, data) {
                show.plot = data.overview;
                show.fully_scraped = true;
 
                console.log("it's now scrapped");
 
                show.save(function(err) {
                    if (err)
                        console.log('error')
                    else
                        console.log('success')
                });
            });
 
 
 
        }
        res.send(show);
    });
});
Comment optimiser tout ça ?

Merci d'avance.