Maison  >  Questions et réponses  >  le corps du texte

javascript - Problème d'utilisation du module de connexion NodeJS

Je suis nouveau sur nodejs. Il existe un tel morceau de code dans l'incroyable NodeJS, qui utilise un middleware pour réaliser l'impression de la console lorsque le temps de demande de code est trop long

//request-time.js
module.exports = function(opts){
    var time = opts.time||100;
    return function(req,res,next){
        var timer = setTimeout(function(){
            console.log(req.method + " , " + req.url + " , too long!");
        },time);

        var end = res.end;
        res.end = function(chunk,encoding){
            res.end = end;                                        //
            res.end(chunk,encoding);                        //直接end(chunk,encoding)会出错
            clearTimeout(timer);
        };
        next(); 
    }
}

La partie commentaire est ma question. Je suppose qu'il y a quelque chose à ce sujet au final, je ne sais pas si je comprends bien

.
漂亮男人漂亮男人2637 Il y a quelques jours915

répondre à tous(1)je répondrai

  • phpcn_u1582

    phpcn_u15822017-07-03 11:44:55

    Le terme « fermeture » vient de la combinaison d'un bloc de code à exécuter (car les variables libres sont contenues à l'intérieur du bloc, ces variables libres et les objets auxquels elles font référence ne sont pas libérées) et de la liaison prévue pour les variables libres Environnement informatique (portée) ---Encyclopédie Baidu

    Parlons d’abord du concept de fermeture

    Votre compréhension est correcte
    ,
    Il s'agit du processus de vérification, la raison en est que si vous appelez end directement, cette extrémité est quittée de force à cause de cette fermeture, elle sera donc automatiquement liée à l'environnement informatique, donc ceci est le plus tardif. C'est Window, donc appeler end directement provoquera une erreur

    répondre
    0
  • Annulerrépondre